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)