天天看點

Linux系統ssh-agent驗證

ssh-agent  是專為既令人愉快又安全的處理 RSA DSA 密鑰而設計的特殊程式,  ssh-agent  是個長時間持續運作的守護程序( daemon ),設計它的唯一目的就是對解密的專用密鑰進行高速緩存。

1) 在堡壘機上建立無密碼的密鑰

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)  建立帶有密碼的密鑰

需要設定存放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 [email protected]

4)  上傳成功後,可以在192.168.1.1上的看到公鑰檔案

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

下一篇: ssh-agent

繼續閱讀