linux服务器通过生成ssh密钥来登录
一、生成ssh公钥和私钥。
[root@MyServer ~]# 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: 24:6e:83:70:7c:d6:83:c0:c0:f5:c5:00:be:51:2d:cc root@MyServer The key's randomart image is: +--[ RSA 2048]----+ //加密方式为RSA 2048
此时当前目录下多了个.ssh目录,目录里面有公钥和私钥两个文件,该目录为隐藏目录,输入"ll -a"命令才能看见。
[root@MyServer .ssh]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys //把公钥内容复制一份到authorized_keys文件。 [root@MyServer .ssh]# ls authorized_keys id_rsa id_rsa.pub
然后修改新生成文件的权限
[root@MyServer .ssh]# chown -R 700 ~/.ssh/ [root@MyServer .ssh]# chown -R 600 ~/.ssh/authorized_keys
二、通过xshell用私钥链接服务器。
1、先用ftp把生成的私钥(id_rsa)下载到本地电脑,然后服务器上的id_rsa和id_rsa.pub就可以删除了,有authorized_keys即可。
2、修改连接方式,修改为public key方法。
3、导入私钥,浏览=》导入=》确定。
确定保存,一般情况下就可以用密钥登录了。
如果你在登陆的时候遇到了「所选的用户密钥未在远程主机上注册。请再试一次」提示,请按照下面方式配置。
三、配置sshd_config文件。
vim /etc/ssh/sshd_config
打开该文件后找到如下内容,去掉前面注释。
StrictModes no //yes改成no,允许使用自己生成的密钥来登录 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys //这里定义了上面生成公钥的时候为什么要命名成authorized_keys
然后保存文件,重启sshd服务。
service sshd restart
这样就可以用密钥来登录服务器了。
ps:该文件其他常用选项的说明:
PermitRootLogin no #禁止root用户登录 PasswordAuthentication no #禁止密码方式登录
在成功设置密钥登录后最好禁用上面两项,确定成功前先不要禁用,以免密钥登录失败,连账户密码都登录不了,那就惨了。