ssh 证书登录linux终端
服务器 /
2016-04-03 /
阅读: 55
作为生产环境使用证书来远程登录SSH要安全的多,记录一下使用证书登录SSH的配置过程。
一、客户端生成公钥和私钥
客户端执行以下命令:(以我的MAC为例)
ssh-keygen -t rsa
这时会提示你确认密钥文件保存的目录,默认即可(/Users/leo/.ssh),直接按回车。
接下来提示你输入私钥密码,注意,请务必输入而且记住。
之后会在书面的目录下生成两个文件,分别是私钥 (id_rsa) 与公钥 (id_rsa.pub)。
二、上传私钥文件并配置
客户端执行命令上传私钥文件到服务器的用户目录(注意如果服务器的ssh端口不是22,需要带上 "-P 端口号" 参数):
scp ~/.ssh/id_rsa.pub leo@<ssh_server_ip>:~
上传后,服务器端进入用户目录执行命令(如果没有.ssh目录请创建):
cat id_rsa.pub >> ~/.ssh/authorized_keys
三、服务器SSH配置文件
服务器执行命令:
vim /etc/ssh/sshd_config
修改配置文件的相关位置
# 禁用root账户登录,非必要,但为了安全性,请配置 PermitRootLogin no # 是否让 sshd 去检查用户家目录或相关档案的权限数据, # 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。 # 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入 StrictModes no # 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。 # 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys RSAAuthentication yes PubkeyAuthentication yes # 此处配置也可改成后面的或直接使用下面默认配置 AuthorizedKeysFile %h/.ssh/authorized_keys AuthorizedKeysFile .ssh/authorized_keys # 禁用密码登录 PasswordAuthentication no
配置修改完,重启ssh,执行命令:
/etc/init.d/sshd restart
四、使用证书登录ssh
客户端执行登录命令(注意:如果ssh端口号不是22,请添加-p参数)
ssh -i .ssh/id_rsa leo@<ssh_server_ip>
提示输入证书密码,输入即可。
五、windows使用Xshell登录
如果你已经在其他linux的客户端已经生成了证书文件,那么与正常登录一样,只是在选择用户身份验证时选择public key方式。用户密钥浏览里面导入刚刚的私钥文件,并在密码栏处填写私钥的密码。
如果没有已经生成的私钥文件,那么只需在刚刚选择证书的窗口中点击生成按钮,生成正式文件并设置密码。然后把生成的公钥文件上传到服务器,并执行上面第一到四步。