SSH-skip-pwdSSH 免密碼工具
ssh-skip-pwd是ssh免密碼工具。
已測環(huán)境:
OS: Centos6.X
編程語言: python2.6 + pip + pexpect + paramiko
安裝前置條件:
1,確認(rèn)python版本為2.6-2.x [非 python3]
2,安裝 pexpect 、paramiko組件
建議:安裝pip后使用pip 安裝pexpect 、paramiko
安裝方法:
a,復(fù)制ssh-skip-pwd文件到/usr/local/bin/中
b,用戶root用戶為該腳本賦權(quán)限
#chmod 755 /usr/local/bin/ssh-skip-pwd
常見問題列表:
問題1:
Received disconnect from 172.17.0.229: 2: Too many authentication failures lost connection
解決辦法: 編輯/etc/ssh/sshd_config,修改參數(shù)MaxAuthTries=2,把2調(diào)大一點10-20間即可
參數(shù)列表簡介:
-f:host列表;指定一個文件全路徑;無默認(rèn)值。
文件內(nèi)容示例
eg:
#iphostname
192.168.1.2node1
192.168.1.3node3
-F: -F /path ,指定一個文件全路徑;無默認(rèn)值。該文件每一行包含:ip、hostname、password(遠(yuǎn)程服務(wù)器用戶的密碼)
文件內(nèi)容示例
eg:
#iphostnamepassword
192.168.1.2node1123456
192.168.1.3node33456787
-h:幫助;
-p:密碼;
-P:ssh port,ssh 的監(jiān)聽端口,默認(rèn)值:22
-s:服務(wù)器hostname或者IP;準(zhǔn)備免密碼連接其他服務(wù)器的機(jī)器名或者ip,默認(rèn)值:localhost
-u:用戶名;非root用戶做ssh免密碼用
-U:用戶列表
文件內(nèi)容示例
eg1:
#用戶名
user1
user2
......
eg2:
#用戶名密碼
user1123456
user2654321
使用方法:
場景一: 為當(dāng)前登錄用戶在A服務(wù)器上做ssh免密碼登錄;
$(#) ssh-skip-pwd -p <password> -s <hostname/ip>
場景二:A服務(wù)器當(dāng)前登錄用戶u1,為自己在服務(wù)器B、C上做ssh免密碼
$(#) ssh-skip-pwd -f <host列表文件全路徑> -p <password>
-f參數(shù)文件內(nèi)容:
第一列為IP,第二列為hostname
10.10.0.1node01
10.10.0.2node02
當(dāng)用戶u1在服務(wù)器B、C上密碼不一至?xí)r
$(#) ssh-skip-pwd -F <host\pwd列表文件全路徑>
-F參數(shù)文件內(nèi)容:
第一列為IP,第二列為hostname
10.10.0.1node01password1
10.10.0.2node02password2
注意當(dāng)u1為root時,-f -F 文件中的hosts信息會被更新到A服務(wù)器的hosts中,同時更新到服務(wù)器B、C上
場景三:用戶u1登錄A服務(wù)器并為用戶u2做ssh免密碼登錄服務(wù)器B、C
要求:u2在ABCD服務(wù)器上的密碼一致
$(#) ssh-skip-pwd -u u2 -p <u2 password> -f <host列表文件全路徑> (當(dāng)u1用戶為root時,需要加入該參數(shù)--curt_pwd=<root 的密碼嗎>)
-f參數(shù)文件內(nèi)容:
第一列為IP,第二列為hostname
10.10.0.1node01
10.10.0.2node02
登錄在A服務(wù)器上的用戶u1為D服務(wù)器上用戶u2做免密碼登錄服務(wù)器B、C
$(#) ssh-skip-pwd -u u2 -p <u2 password> -f <host列表文件全路徑> -s <服務(wù)器D的hostname> (當(dāng)u1用戶為root時,需要加入該參數(shù)--curt_pwd=<root 的密碼嗎>)
-f參數(shù)文件內(nèi)容:
第一列為IP,第二列為hostname
10.10.0.1node01
10.10.0.2node02
注意當(dāng)u1為root時,-f 文件中的hosts信息會被更新到A服務(wù)器的hosts中,同時更新到服務(wù)器B、C上
場景四:A服務(wù)器上登錄的用戶u1為多個用戶同時做ssh免密碼登錄服務(wù)器B、C
要求:每個用戶在ABCD服務(wù)器上密碼一致
$(#) ssh-skip-pwd -U <user/pwd 列表文件> -f <host列表文件全路徑> (當(dāng)u1用戶為root時,需要加入該參數(shù)--curt_pwd=<root 的密碼嗎>)
-f參數(shù)的文件內(nèi)容:
第一列為IP,第二列為hostname
10.10.0.1node01
10.10.0.2node02
-U參數(shù)的文件內(nèi)容:
第一列為用戶名,第二列為密碼
user1password1
user2password2
...
登錄在A服務(wù)器上的用戶u1為D服務(wù)器上多個用戶做免密碼登錄服務(wù)器B、C
$(#) ssh-skip-pwd -U <user/pwd 列表文件> -f <host列表文件全路徑> -s <服務(wù)器D的hostname> (當(dāng)u1用戶為root時,需要加入該參數(shù)--curt_pwd=<root 的密碼嗎>)
注意當(dāng)u1為root時,-f 文件中的hosts信息會被更新到A服務(wù)器的hosts中,同時更新到服務(wù)器B、C上
