Linux系統ssh-agent驗證

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

 

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

ssh-keygen bash

 

 

2) 複製~/.ssh/id_rsa.pubhost1,host2,host3服務器。咱們要將它加入到root賬號的~/.ssh/authorized_keys 服務器

ssh-copy-id -i .ssh/id_rsa.pub host1 app

   ssh-copy-id -i .ssh/id_rsa.pub host2 ssh

   ssh-copy-id -i .ssh/id_rsa.pub host3 ide

 

3) 上傳成功後,能夠在每臺服務器上的看到公鑰文件 spa

ls -l /root/.ssh/authorized_keys 設計

 

4) 在堡壘機上啓用ssh-agent code

 

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-agentkeychain方法實現普通用戶以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

相關文章
相關標籤/搜索