SSH免密码登陆安全
什么是SSHbash
基于秘钥的安全验证方式是指,须要依靠秘钥,也就是必须事先创建一对密钥对,而后把公用秘钥(Public key)放在须要访问的目标服务器上服务器
另外还须要把私有密钥(Private key)放到 SSH 的客户端或对应的客户端服务器上。ssh
实验环境介绍ide
testtest-A 192.168.133.136 中心分发服务器spa
ceshi-B 192.168.133.128 接收节点服务器3d
yueliang-C 192.168.133.130 接收节点服务器rest
实验需求orm
A->Bblog
A->C
配置 SSH 实验环境
不少公司直接用 root 用户来操做,这样很不规范。
首先在三台机器上分别添加同一个系统帐号,并设置密码
useradd yuci
echo "zhaoboyang" | passwd --stdin yuci
id yuci
将三台机器的当前用户切换为 yuci
su - yuci
只在 A 上操做,建立密钥对
切换为刚才建立的用户 yuci 进行操做
执行如下命令,一路默认回车便可
ssh-keygen -t dsa
在家目录下查看刚才建立的文件
ll .ssh/
在 B 上查看 ssh 的端口(查看端口须要 root 权限)
ssh 是默认端口 22
netstat -tlunp | grep ssh
将公钥传给 B
ssh 端口为默认 22 的链接方式
ssh-copy-id -i .ssh/id_dsa.pub yuci@192.168.133.128
ssh 端口若是为 52113 的链接方式
ssh-copy-id -i id_dsa.pub "-p 52113 yuci@192.168.133.128"
和以前的操做相同,在 C 上查看端口,并在 A 上将公钥传给 C
ssh-copy-id -i .ssh/id_dsa.pub yuci@192.168.133.130
注明:ssh-copy-id 不是命令,而是一个脚本
在 B C 上查看刚才收到的公钥,名字有所变化
ls .ssh/
在 A 上链接 B,不须要密码便可远程链接
ssh yuci@192.168.133.128
在 A 上链接 C,不须要密码便可远程链接
ssh yuci@192.168.133.130
进行批量分发文件
首先在 A 上建立 a.txt 的文件,而后经过 scp 分别发给 B C 两台机器的家目录下:
echo 123 > a.txt
分别给两台机器推送文件到家目录并查看,分发文件成功
scp a.txt yuci@192.168.133.128:~
scp a.txt yuci@192.168.133.130:~
若是分发文件很慢的话须要作如下更改
解决方法:(两种均在须要链接的服务器端上操做)
1.在 ssh 服务器端上更改 /etc/ssh/sshd_config 文件中的配置为以下内容
UseDNS no
GSSAPIAuthentication no
在重启服务便可/etc/init.d/sshd restart
2.若是还慢的话能够检查 /etc/hosts 文件中,127.0.0.1对应的主机名和 uname -n 的结果是否同样,或者把 hostname(uname -n)加入到 /etc/hosts 里
经过 ssh 互信还能够远程执行命令
ssh yuci@192.168.100.140 /sbin/ifconfig eth0
[yuci@taiyang ~]$ ssh yuci@192.168.100.140 /sbin/ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:29:83:45:A4 inet addr:192.168.100.140 Bcast:192.168.100.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe83:45a4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7137 errors:0 dropped:0 overruns:0 frame:0 TX packets:5025 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6365176 (6.0 MiB) TX bytes:473704 (462.6 KiB)