标签:ssh
(ssh:secure shell, protocol, 22/tcp,安全的远程登录)
SSH相关的安装包:
openssh-clients.x86_64 SSH的客户端安装包
openssh-server.x86_64 SSH的服务器端安装包
openssh.x86_64 SSh的通用设置,服务于服务器端和客户端
基于密钥的认证:
1、使用到的命令:
a) ssh-keygen 生成ssh认证的私钥和公钥
b) ssh-copy-id 将ssh认证的公钥从客户端拷贝到服务器端生成authorized_keys文件,该文件中存放公钥。
2、客户端的操作:
a) 生成密钥对:
非交互式:ssh-keygen –t rsa [-P ‘ ‘ ] [-f "~/.ssh/id_rsa"]
-t:指定加密的方式
-P:指定加密的密码
-f:指定生成的私钥地址
(该方式生成的私钥在用于认证的时候需要输入指定的密码)
交互式:ssh-keygen (直接回车就可以了)
(该方式会进行各种确认,提示是否生成相应的文件。)
b) 把公钥文件传输至远程服务器对应用户的家目录:
ssh-copy-id [-i [identity_file]][user@]host
例如:ssh-copy-id root@172.17.254.244
会自动生成authorized_keys文件,这里是存放的id_rsa.pub文件中的公钥。
3、设置代理ssh-agent
如果密钥设置了密码,每次输入都很麻烦,这时候可以用ssh-agent代理,只要输入一次口令,之后都可以用。退出会话之后就失效。
ssh-agent bash 启动代理
ssh-add 添加代理密码(这个是交互式命令,如果私钥有密码,会自动提示输入密码。)
4、实现多台客户端的免密登录
以上介绍的都是两台机器之间的免密登录,每台机器对应家目录下的.ssh/目录下只有一个authorized_keys文件,如何实现同一台服务器可以多台客户端免密登录呢?
根据之前我们介绍的,在authorized_keys这个文件中存放的是客户端ssh认证的公钥,所以我们可以参考其中的格式,将客户端ssh认证的公钥全部存放到其中即可。
当然,我们就不能重复使用ssh-copy-id这个命令了,否则将会造成覆盖,达不到预期的效果。
a) 将客户端对应家目录中.ssh/目录下生成的id_rsa.pub文件拷贝到服务器端
scp ~/.ssh/id_rsa.pub 172.17.253.23
b) 将从客户端拷贝过来的公钥内容,添加到authorized_keys文件中,具体做法如下:
cat id_rsa.pub >> ~/.ssh/authorized_keys
c)只要将每一台客户端的公钥都添加到服务器端authorized_keys文件中,就可以实现多台客户端同时免密登录服务器了。
本文出自 “Linux运维” 博客,请务必保留此出处http://jk6627.blog.51cto.com/12002684/1970636
标签:ssh
原文地址:http://jk6627.blog.51cto.com/12002684/1970636