ssh证书 认证 设置 ssh 互信

http://www.cublog.cn/u/250/showart_34537.html

http://atim.cn/read.php/572.htm

运行下列命令:

cd

mkdir .ssh

chmod 700 .ssh

cd .ssh

touch authorized_keys

chmod 600 authorized_keys

echo "ssh-rsa 密码 username@hostname">>authorized_keys

cat authorized_keys

/sbin/ifconfig

ssh 互信

折腾折腾。
准备重装服务器,所以有些东西还得我去弄了。现在是ssh证书认证的设置
有一些操作需要在服务器之间进行操作,而且还是使用cron进行定时操作。所以必须在ssh操作时不用输入密码。

现在两台服务器:A server 与 B server
我想在A server 使用root帐号登录B server时不用输入密码。

[root@A server]#ssh root@b_server
不用输入密码
另外a_server和b_server是在/etc/hosts文件中修改的。

登录A Server

[root@A server]#ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
7f:0e:8c:58:59:ff:62:22:d8:14:64:29:23:5e:b2:13 root@OFFICE

可以在/root/.ssh/目录下看到id_rsa与id_rsa.pub

ssh-keygen
解释:是生成密码钥匙的工具,
-t
解释: 是使用那一种加密方法,默认是使用dsa,不过现在大部分人都推荐使用rsa作为加密的方法。
Enter file in which to save the key (/root/.ssh/id_rsa):
解释:把文件保存在那里这个使用默认的就可以了。
Enter passphrase (empty for no passphrase):
解释:输入验证的密码。这个密码不同于用户的密码。只是使用公共钥匙的密码。
Enter same passphrase again:
解释:再次输入验证的密码
其它的为输出内容,就不解释了。

登录B server
将刚才在A server 中生成的id_rsa.pub复杂到B server中。

[root@B server]#scp root@a_server:/root/.ssh/id_rsa.pub /root/.ssh/id_rsa_a_server
id_rsa.pub                                      100%    397      0.4KB/s    00:00
[root@B server]#cat /root/.ssh/id_rsa_a_server >> /root/.ssh/authorized_keys
[root@B server]#chmod 600 /root/.ssh/authorized_keys
scp root@a_server:/root/.ssh/id_rsa.pub /root/.ssh/id_rsa_a_server
解释:ssh应用中的一个,远程复制文件。不过这里还需要输入密码
cat /root/.ssh/id_rsa_a_server >> /root/.ssh/authorized_keys
解释:将A server的公共钥匙插入到authorized_keys文件中
chmod 600 /root/.ssh/authorized_keys
解释:设置访问权限,如果该文件不是只有用户可以访问,sshd将不会认为authorized_keys是一个有效的配置文件

好了。现在回到A server上了

[root@A server]#ssh root@b_server
不再需要密码就可以登录到B server上了

再解释一下
一般我们登录的是使用基于密码的安全验证,但还有一种是基于密匙的安全验证。而我现在使用的就是基于密匙的安全验证。
ssh 互信
      在服务器端,SSH也提供安全验证。在基于密码的安全验证方案中,主机将自己的公用密钥分发给相关的客户端,客户端在访问主机时则使用该主机的公开密钥来加密数据,主机则使用自己的私有密钥来解密数据,从而实现主机密钥认证,确定客户端的可靠身份。在基于密匙的安全验证方案中,存在一个密钥认证中心,所有提供服务的主机都将自己的公开密钥提交给认证中心,而任何作为客户端的主机则只要保存一份认证中心的公开密钥就可以了。在这种模式下,客户端必须访问认证中心然后才能访问服务器主机。

基于密码的安全验证
知道帐号和密码,就可以登录到远程主机,并且所有传输的数据都会被加密。但是,可能会有别的伺服器在冒充真正的伺服器,无法避免被「中间人」攻击。
基于密匙的安全验证

需要依靠密匙,也就是你必须为自己创建一对密匙,并把公有密匙放在需要访问的伺服器上。客户端软件会向伺服器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在你在该伺服器的用户根目录下寻找你的公有密匙,然后把它和你发送过来的公有密匙进行比较。如果两个密匙一致,伺服器就用公有密匙加密「质询」(challenge)并把它发送给客户端软件。从而避免被「中间人」攻击。

ssh 互信

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>