SSH免密码登录
什么是SSH
基于秘钥的安全验证方式是指,需要依靠秘钥,也就是必须事先建立一对密钥对,然后把公用秘钥(Public key)放在需要访问的目标服务器上
另外还需要把私有密钥(Private key)放到 SSH 的客户端或对应的客户端服务器上。
实验环境介绍
testtest-A 192.168.133.136 中心分发服务器
ceshi-B 192.168.133.128 接收节点服务器
yueliang-C 192.168.133.130 接收节点服务器
实验需求
A->B
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
1
2
3
4
5
6
7
8
9
|
[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)
本文转自 mlwzby 51CTO博客,原文链接:http://blog.51cto.com/aby028/1928771
|