SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。
这里我们主要利用SSH的公钥和私钥进行解密,然后实现免秘钥登陆,首先,我们执行ssh-keygen命令会在~/.ssh目录下生成id_rsa和id_rsa.pub两个文件,分别为公钥和私钥,免秘钥登陆就是将本机的公钥发到目的服务器上,从而实现免秘钥登陆,下面就是使用shell编写的免秘钥登陆脚本
#!/bin/sh
Local_IP=`ifconfig | grep "inet addr:192" | cut -d ":" -f 2 | awk '{print $1}'`
read -p "please input pair IP address:" IP_ADDR
read -p "Please input pair User:" USER
cd ~/.ssh
ssh-keygen -t rsa
chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa.pub
chmod 644 ~/.ssh/known_hosts
chmod 755 ~/.ssh
chmod g-x ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
chmod o-x ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
echo "发布证书到对方服务器"
cat ~/.ssh/id_rsa.pub | ssh $USER@$IP_ADDR 'cat >> /root/.ssh/authorized_keys'
#scp ~/.ssh/id_rsa.pub $USER@$IP_ADDR:/root/.ssh/authorized_key
echo "证书发布成功"
这种免秘钥登陆比较简单,后期还会研究其他相关技术方法