【转】生成ssh keygen

from:http://ydt619.blog.51cto.com/316163/652808

 

ssh-agent 是专为既令人愉快又安全的处理 RSA  DSA 密钥而设计的特殊程序, ssh-agent 是个长时间持续运行的守护进程(daemon),设计它的唯一目的就是对解密的专用密钥进行高速缓存。

 

1) 在堡垒机上创建无密码的密钥

ssh-keygen

 

 

2) 复制~/.ssh/id_rsa.pubhost1,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-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 [email protected]

 

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

猜你喜欢

转载自roomfourteen224.iteye.com/blog/2217054