1.CentOS下安装SSH
使用下列命令查看当前系统是否已经安装 ssh 和 rsync。rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。
rpm –qa | grep openssh
rpm –qa | grep rsync
如果没有显示,即没有安装,可以通过下面命令进行安装:
yum install ssh
yum install rsync
service sshd restart
2.Ubuntu下安装SSH
使用下列命令安装 OpenSSH Server 和 OpenSSH Client:
sudo apt-get install openssh-server
sudo apt-get install openssh-client
使用命令查看是否已启动SSH:
ps -e | grep ssh
如果看到ssh-agent和sshd,则说明ssh-server已启动,否则使用下列命令启动:
sudo /etc/init.d/ssh start
3.配置SSH
修改下列选项值为可用:(Ubuntu 和 CentOS ssh 配置文件位置为 /etc/ssh/sshd_config)
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(Ubuntu为 %h/.ssh/authorized_keys )
当然也可以自定义端口号之类。修改完成,保存退出,重启ssh服务使配置生效:
# CentOS
service sshd restart
# Ubuntu
sudo /etc/init.d/ssh restart
4.生成密钥对
使用下列命令生成 rsa 密钥对,询问路径时按 Enter 保存到默认路径,密码为空(注意是两个单引号):
ssh-keygen –t rsa –P ''
把生成的公钥 id_rsa.pub 追加到授权的key里面去:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod ~/.ssh/authorized_keys # 非常重要,权限不足会无法使用RSA功能
验证是否成功配置(当有提示时输入 yes ):
ssh localhost
5.使用SecureCRT创建公钥
选择Tools(工具) -> Create Public Key...(创建公钥)。在弹出的窗口中,Key type 选择 RSA;Passphrase(通行短语)就是类似口令,自己填一个,例如我填的是 hadoop。key length 即密钥长度,可以根据需要自己设定,默认1024就够了。最后保存的时候选择 Openssh 格式,Private Key 可以换一个其他的名字避免和其他的密钥冲突。
6.建立SSH连接
这里以 CentOS 为例。首先将本地生成的公钥(.pub文件)上传到CentOS上。可以利用简单的FTP命令实现(可以查看这两篇文章:Windows命令行使用FTP 和 CentOS 6.5 安装配置VSFTP)。
使用下列语句将上传的公钥追加到信任集合(authorized_keys)里面:
cat ~/Myself.pub >> ~/.ssh/authorized_keys #如果保存的时候是OpenSSH格式
ssh-keygen -i -f ~/Myself.pub >> ~/.ssh/authorized_keys #如果保存的时候是其他格式
chmod ~/.ssh/authorized_keys
之后打开SecureCRT,编辑或者新建Session,在Session编辑窗口,勾掉Password和GSSAPI,并点击右边箭头将这两项调到最下方位置。
然后选中该PublicKey,点击右边 "Properties..",在弹出的对话框中,选则刚才生成的公钥:
一路Ok,完成后Connect(连接),输入刚才自己制定的 Passphrase(通行短语)即可实现 SSH 无密码登陆。