第十周-day40-SSH远程连接

第十周-day40-SSH远程连接服务.png

SSH服务

准备工作-2台机器
m01:
10.0.0.61 / 172.16.1.61
backup:
10.0.0.41 / 172.16.1.41

远程连接工具
ssh
telnet服务
sftp上传下载

一、SSH VS telnet

需要安装的软件
yum install -y telnet-server

1.确认是否安装,重启一下

[09:10 root@m01 ~]# rpm -qa telnet-server
telnet-server-0.17-64.el7.x86_64
[09:13 root@m01 ~]# systemctl restart  telnet.socket 

2.添加一个telnet 连接的模板机

3.本地shell连接一下

visudo里提前添加好 oldboy ALL=(ALL) NOPASSWD:ALL

[d:\~]$ telnet 10.0.0.61 23


Connecting to 10.0.0.61:23...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Kernel 3.10.0-957.el7.x86_64 on an x86_64
m01 login: oldboy
Password: 
Last login: Mon May 27 09:22:26 from ::ffff:10.0.0.1
[09:24 oldboy@m01 ~]$ hostname -I
10.0.0.61 172.16.1.61 

4.用wireshark(windows+Linux)抓包 /tcpdump(linux)抓包

对应着本地连接的顺序

输入密码:

密码为123456

登录后显示的日期时间

显示PS1的变量

5.检查ssh软件是否安装

[09:18 oldboy@m01 ~]$ rpm -qf `which ssh`
openssh-clients-7.4p1-16.el7.x86_64
[09:36 oldboy@m01 ~]$ rpm -qf `which scp`
openssh-clients-7.4p1-16.el7.x86_64
[09:36 oldboy@m01 ~]$ rpm -qf /etc/ssh/sshd_config 
openssh-server-7.4p1-16.el7.x86_64

查看详细内容:
rpm -ql openssh
rpm -ql openssh-clients 
rpm -ql openssh-server 

6.第一次连接某台服务器的时候会提示

[09:39 oldboy@m01 ~]$ ssh 10.0.0.41
The authenticity of host '10.0.0.41 (10.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:88rBReEHynIVVIC2gIUWhJmKf55XkLnQMzZ/Gntdt48.
ECDSA key fingerprint is MD5:34:f7:e4:ea:d9:45:cc:7f:c5:94:2d:43:71:47:19:0c.
Are you sure you want to continue connecting (yes/no)?  yes

7.在客户端连接backup执行一条命令或多条命令

[09:44 root@m01 ~]# ssh -p22 10.0.0.41 whoami
root@10.0.0.41's password: 
root
[09:45 root@m01 ~]# ssh -p22 oldboy@10.0.0.41 whoami
oldboy@10.0.0.41's password: 
oldboy
[09:48 root@m01 ~]# ssh -p22 10.0.0.41 whoami;id;pwd
root@10.0.0.41's password: 
root
uid=0(root) gid=0(root) groups=0(root)
/root

8.取个ip玩玩

不要接太复杂的命令

[09:52 root@m01 ~]# ssh -p22 root@10.0.0.41 ip a s eth0|awk 'NR==3{print $2}'
root@10.0.0.41's password: 
10.0.0.41/24

二、scp 远程传输数据

rcp 未加密
-P 指定端口号
-r 复制目录

[[09:54 root@m01 ~]# scp -P22 /etc/hosts backup:/tmp
hosts                                              100%  349   205.2KB/s   00:00    
[[09:54 root@backup ~]# ll /tmp/
total 4
-rw-r--r-- 1 root root 349 May 27 16:50 hosts

三、sftp上传和下载

类似 rz和sz

用sftp连接一下backup服务端

[09:59 root@m01 ~]# sftp 10.0.0.41
root@10.0.0.41's password: 
Connected to 10.0.0.41.
sftp> pwd
Remote working directory: /root

1.put—从本地上传到服务端41

sftp> put /etc/hostname 
Uploading /etc/hostname to /root/hostname
/etc/hostname                                 100%    4     9.9KB/s   00:00   

2.get—从服务端41下载到本地

sftp> get /etc/hostname  /opt/
Fetching /etc/hostname to /opt/hostname
/etc/hostname                                 100%    7     6.0KB/s   00:00    
sftp> bye  \\退出

3.在两端查看一下传过过来了没

m01:
[10:03 root@m01 ~]# cat /opt/hostname 
backup

backup:
[10:04 root@backup ~]# cat hostname 
m01

4.连接指定端口号参数用 -P +端口号

[10:04 root@m01 ~]# sftp -P 22 10.0.0.41
root@10.0.0.41's password: 
Connected to 10.0.0.41.
sftp> pwd
Remote working directory: /root  \\当前在root目录工作

windows上的远程连接工具—xftp 6.exe

点此链接下载xftp提取码: wc5p

※四、ssh服务端配置文件

1.ssh服务端配置文件/etc/ssh/sshd_config

[16:14 root@m01 ~]# vim /etc/ssh/sshd_config   \\目前只列出主要修改的内容
17 #Port 22       \\远程连接端口号

19 #ListenAddress 0.0.0.0  \\监听的地址 用户可以通过哪个地址(ip) 远程连接
                             \\监听本地网卡的ip地址
                              \\不同网段 不同端口
38 #PermitRootLogin yes      \\是否禁止root远程登录

64 #PermitEmptyPasswords no  \\是否准许空密码--必须关了

65 PasswordAuthentication yes   \\是否开启通过密码登录(认证)
                                \\开启密钥认证时可以打开

79 GSSAPIAuthentication no   \\解决ssh远程连接慢的问题
115 UseDNS no                \\解决ssh远程连接慢的问题

2.修改ssh配置文件如下两行

[10:58 root@m01 ~]# egrep -i  '^port|^permitroot' /etc/ssh/sshd_config
Port 52113
PermitRootLogin no

3.指定内网IP连接,平滑重启sshd服务

ListenAddress 172.16.1.61
[11:09 root@m01 ~]# ss -lntup|grep sshd
tcp    LISTEN     0      128       *:22                    *:*                   users:(("sshd",pid=7188,fd=3))
tcp    LISTEN     0      128      :::22                   :::*                   users:(("sshd",pid=7188,fd=4))
[11:10 root@m01 ~]# systemctl reload sshd.service 
[11:10 root@m01 ~]# ss -lntup|grep sshd
tcp    LISTEN     0      128    172.16.1.61:22                    *:*                   users:(("sshd",pid=7188,fd=3))

案例:多个网段多端口

ssh配置文件修改端口号为:Port 52113

尝试在别的机器上用ssh scp sftp连接内网段和外网段的 不同端口

连接外网段 全部报错 :

ssh   -p 52113   10.0.0.61 
sftp  -P 52113   10.0.0.61 
scp   -P 52113 /etc/hosts 10.0.0.61:/tmp

[11:14 root@backup ~]# ssh   -p 52113   10.0.0.61 
ssh: connect to host 10.0.0.61 port 52113: Connection refused \\报错:

连接内网段 全部可以执行:

ssh   -p 52113   172.16.1.61
sftp  -P 52113   172.16.1.61
scp   -P 52113 /etc/hosts 172.16.1.61:/tmp

[11:14 root@backup ~]# ssh   -p 52113   172.16.1.61
root@172.16.1.61's password: 
Last login: Mon May 27 17:08:49 2019 from 172.16.1.41
[17:14 root@m01 ~]#   \\成功

4.修改ssh配置文件/etc/ssh/sshd_config

20 ListenAddress 10.0.0.61:52113
21 ListenAddress 172.16.1.61:22

平滑重启后查看端口号

[11:25 root@m01 ~]# systemctl reload sshd
[11:25 root@m01 ~]# ss -lntup |grep sshd 
tcp    LISTEN     0      128    10.0.0.61:52113                 *:*                   users:(("sshd",pid=7188,fd=4))
tcp    LISTEN     0      128    172.16.1.61:22                    *:*                   users:(("sshd",pid=7188,fd=3))

本地shell连接一下

之前已经创建了oldboy普通用户
并在visudo里提前添加好 oldboy ALL=(ALL) NOPASSWD:ALL
禁止了root远程登录 PermitRootLogin no

[d:\~]$ ssh root@10.0.0.61 52113  不通

[d:\~]$ ssh oldboy@10.0.0.61 52113 通了
Last login: Mon May 27 16:40:36 2019 from 10.0.0.1
[17:22 oldboy@m01 ~]$ 

三、秘钥连接

SSH认证方式
密码认证
秘钥认证

秘钥认证

单向的认证
免密登录

步骤:
安装软件 sshpass pssh
客户端创建秘钥 ssh-keygen -t dsa
客户端发送秘钥 ssh-copy-id -i ~/.ssh/id_dsa.pub +ip地址
服务端的秘钥地址 ~/.ssh/authorized_keys

1.安装软件,保证端口号是22

yum install -y   sshpass pssh 
[12:11 root@m01 ~]# ss -lntup|grep sshd
tcp    LISTEN     0      128       *:22               *:*                   users:(("sshd",pid=7188,fd=3))
tcp    LISTEN     0      128      :::22               :::*                  users:(("sshd",pid=7188,fd=4))

2.创建秘钥

ssh-keygen -t dsa

[12:11 root@m01 ~]# ssh-keygen -t dsa   \\创建秘钥的命令
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_dsa.  \\你的私钥路径
Your public key has been saved in /root/.ssh/id_dsa.pub.  \\你的公钥路径
The key fingerprint is:
SHA256:wsT45xD36AFN6onAidMbvLRJrj8dC0zaJIyrP6/RpJ0 root@m01
The key's randomart image is:
+---[DSA 1024]----+
|        .        |
| = . o +         |
|= X . * o        |
|o*oB * = o       |
| O* o B S .      |
|o.+=.. * .       |
|o ooEo  o        |
|..o.o            |
| .+=.            |
+----[SHA256]-----+

3.在客户端m01发送:

[12:16 root@m01 ~]# ssh-copy-id -i ~/.ssh/id_dsa.pub 172.16.1.41
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_dsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.16.1.41's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '172.16.1.41'"
and check to make sure that only the key(s) you wanted were added.

4.在客户端就可以免密连接了

[12:16 root@m01 ~]# ssh 172.16.1.41 hostname
backup
[12:21 root@m01 ~]# ssh  10.0.0.41 animalsay a
 ___
< a >
 ---
      \                _
       \              (_)   <-- TeleBEARS
        \   ^__^       / \
         \  (oo)\_____/_\ \
            (__)\  you  ) /
                ||----w ((
                ||     ||>>   ....

5.我们可以去服务端backup看一下秘钥的目录

~/.ssh/ 当前目录下的.ssh

[12:16 root@backup ~]# ll ~/.ssh/
total 8
-rw------- 1 root root 598 May 27 12:16 authorized_keys
-rw-r--r-- 1 root root 683 May 27 11:12 known_hosts

6.我们打开web01机器也给web01添加秘钥认证

把秘钥文件发送到web01

[12:34 root@m01 ~]# ssh-copy-id -i ~/.ssh/id_dsa.pub 172.16.1.7

查看web01下的秘钥文件

[12:33 root@web01 ~]# ll .ssh/
total 4
-rw------- 1 root root 598 May 27 12:34 authorized_keys

7.客户端m01取个web01的ip

[12:34 root@m01 ~]# ssh 172.16.1.7 ip a s eth0|awk -F"[ /]+" 'NR==3{print $3}'
10.0.0.7   \\成功

四、批量管理

Xshell
pssh

pssh

让多台机器执行同一条命令我们可以用pssh

参数
-h 指定被管理的主机列表
-P 显示屏幕输出
-A 用户的输入密码

1.检查是否安装

[12:39 root@m01 ~]# rpm -qa pssh
pssh-2.3.1-5.el7.noarch

2.创建一个文件,写入连接的ip和端口

[12:44 root@m01 ~]# vim hosts.txt
root@172.16.1.41:22
root@172.16.1.7:22

3.然后用pssh执行一条命令,看是否执行成功

[12:44 root@m01 ~]# pssh -Ph hosts.txt  hostname
172.16.1.41: backup
[1] 12:46:40 [SUCCESS] root@172.16.1.41:22
172.16.1.7: web01
[2] 12:46:40 [SUCCESS] root@172.16.1.7:22

4.如果删除秘钥的话

用pssh推送失败

[12:50 root@m01 ~]# rm -rf .ssh/ *
[12:50 root@m01 ~]# pssh -Ph hosts.txt  touch 888.txt
[1] 12:50:20 [FAILURE] root@172.16.1.41:22 Exited with error code 255
[2] 12:50:20 [FAILURE] root@172.16.1.7:22 Exited with error code 255

5.用prsync传输也可以了

需要输入密码 但是不支持 -P参数

[12:52 root@m01 ~]# prsync -A -azh  hosts.txt  /etc/hostname  /tmp/
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 12:52:49 [SUCCESS] root@172.16.1.41:22
[2] 12:52:49 [SUCCESS] root@172.16.1.7:22

6.用pssh查看一下推送到/tmp下的hostname

[17:54 root@m01 ~]#  pssh -A  -Ph hosts.txt cat /tmp/hostname 
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
172.16.1.7: m01
[1] 17:54:41 [SUCCESS] root@172.16.1.7:22
172.16.1.41: m01
[2] 17:54:41 [SUCCESS] root@172.16.1.41:22

测试后记得把秘钥分发到backup和web01

分享自51cto博客的:

不死鸟一辉
一次ssh被篡改的***事件
https://blog.51cto.com/phenixikki/1546669

未完待续....

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容