ssh-agent 是專爲既使人愉快又安全的處理 RSA 和 DSA 密鑰而設計的特殊程序, ssh-agent 是個長時間持續運行的守護進程(daemon),設計它的惟一目的就是對解密的專用密鑰進行高速緩存。
ssh-keygen
2) 複製~/.ssh/id_rsa.pub到host1,host2,host3服務器。咱們要將它加入到root賬號的~/.ssh/authorized_keys中
ssh-copy-id -i .ssh/id_rsa.pub host1
ssh-copy-id -i .ssh/id_rsa.pub host2
ssh-copy-id -i .ssh/id_rsa.pub host3
3) 上傳成功後,能夠在每臺服務器上的看到公鑰文件
ls -l /root/.ssh/authorized_keys
4) 在堡壘機上啓用ssh-agent
eval `ssh-agent`
5) 使用 ssh-add 命令把咱們的專用密鑰添加到 ssh-agent 的高速緩存中
ssh-add
6) 開啓ssh-agent轉發
編緝/etc/ssh/ssh_config文件: ForwardAgent yes
讓ssh-agent能轉發,這樣就能夠這樣登錄了:堡壘機---->host1---->host2,到此請注意,若是host1上沒有設定轉發的話就登不了host3了
7) 自動運行ssh-agent
/etc/profile.d下建一個ssh-agent.sh文件
#!/bin/sh
if [ -f ~/.agent.env ]; then
. ~/.agent.env >/dev/null
if ! kill -0 $SSH_AGENT_PID >/dev/null 2>&1; then
echo "Stale agent file found. Spawning new agent..."
eval `ssh-agent |tee ~/.agent.env`
ssh-add
fi
else
echo "Starting ssh-agent..."
eval `ssh-agent |tee ~/.agent.env`
ssh-add
fi
ssh-agent的keychain方法實現普通用戶以root方式登入服務器:
1) 在堡壘機上建立普通用戶tony
useradd tony
passwd 123456
2) 建立帶有密碼的密鑰
ssh-keygen
須要設定存放key的目錄,以及密碼,就能生成私鑰和公鑰
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tony/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tony /.ssh/id_rsa.
Your public key has been saved in /home/tony /.ssh/id_rsa.pub.
3) 複製~/.ssh/id_rsa.pub到運行sshd的服務器。咱們要將它加入到該用戶在服務器上相應賬號的~/.ssh/authorized_keys中
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.1
4) 上傳成功後,能夠在192.168.1.1上的看到公鑰文件
ls -l /root/.ssh/authorized_keys
5) 下載安裝keychain軟件
wget http://www.funtoo.org/archive/keychain/keychain-2.7.1.tar.bz2
tar jxvf keychain-2.7.1.tar.bz2
cd keychain-2.7.1
install -m 0755 keychain /usr/bin/
6) 在bash_profile裏面加入啓動腳本,每次用戶登入後就會執行keychain
/usr/bin/keychain --clear ~/.ssh/id_rsa ##開啓一個新的shell的時候提示輸入密碼,提升安全性
. ~/.keychain/$HOSTNAME-sh > /dev/null ##開啓一個新的shel啓用keychain
7) 建立新用戶www,也使用/home/tony /.ssh/id_rsa.和/home/tony /.ssh/id_rsa.pub,就能登入全部服務器了
cat >> /home/www/.bash_profile <<EOF
/usr/bin/keychain --clear ~/.ssh/id_rsa
. ~/.keychain/$HOSTNAME-sh > /dev/null
EOF
mkdir /home/www/.ssh
cp /home/tony /.ssh/id_rsa* /home/www/.ssh
chown –R /home/www