使用密钥文件登录ssh

作者: writer 分类: 技术 发布时间: 2017-07-20 13:24 ė 1122 6 没有评论

我们都知道ssh登录可以使用输入密码的方式,也可以通过密钥文件的形式。一般来说密钥文件能提供更好的安全性,防止攻击者暴力破解密码,而且在一些特殊的场合,比如管理 Jenkins slave,登录私有的git服务器,都需要这种密钥文件的认证方式来避免手动输入密码。
目前本博客的服务器用的是Vultr的VPS,直接面对互联网上各种流量,为了避免可能的入侵,最好还是将登录方式设为密钥。

生成密钥文件

Linux命令生成

生成密钥文件有多种途径,在各种教程中最常见的方法是登录到本地的某个Linux系统,输入 ssh-genkey命令生成密钥文件。系统会提示保存文件的路径,以及密码 passphrase

[/crayon]

默认路径会存在.ssh下面。既然都使用密钥文件认证了,密码可以为空。这样我们会拿到两个文件:
– id_rsa.pub: 公钥文件
– id_rsa: 私钥文件

使用Xshell软件生成

公司为我们提供了正版的XShell 5软件,用它来登录管理多台Linux主机不知道有多爽。这个强大的工具自然也提供了生成ssh密钥的功能。
1. 从主界面菜单 Tools > New User Key Wizard...,打开这个界面,使用默认的密钥长度2048,点击 Next
使用密钥文件登录ssh
2. 这个界面表明生成密钥完成,点击 Next
使用密钥文件登录ssh
3. 这里让我们输入口令,还是直接点击 Next,使用空口令
使用密钥文件登录ssh
4. 这一步表明密钥生成完毕,文本框显示的是公钥,可以把内容拷贝出来保存,也可以点击 Save as a file保存到文件。
这里我们选 Save as a file,然后点击 Finish
使用密钥文件登录ssh
5. 这样就到User Key的对话框,图中已经将刚才生成好的私钥id_rsa_2048加入到私钥管理器中。类似的也可以点击 Export将私钥文件保存出来备用。建议公钥私钥都另做备份。
使用密钥文件登录ssh

上传公钥文件到远程Linux服务器

通过密码方式登录到目标服务器,我们要将这台服务器的某个账户设置成为使用密钥登录。假如要使用密钥登录这台服务器的newuser账户。
切换到这个账户

[/crayon]

进入账户home下的.ssh目录,假如这个目录不存在则创建这个目录,并且修改访问权限为700,禁止其他账户和组访问

[/crayon]

创建一个新文件authorized_keys,在里面写入刚才生成的公钥文件的内容

[/crayon]

注意:authorized_keys文件的权限设置成为600,否则ssh服务端禁止这个key的登录。

[/crayon]

使用私钥文件登录

在Xshell里,设置主机登录方式为Public Key,设置登录用户名为前面选择的newuser,私钥选择为前面生成的id_rsa_2048
使用密钥文件登录ssh
主机配置完成后,就可以一键登录进去了。
加入通过其他Linux机器 ssh命令行方式登录目标服务器,则可以使用下面的命令

[/crayon]

注意:id_rsa_2048必须设置成为600权限,否者登录失败
如果不想每次指定私钥文件,则必须将私钥文件放进放进~/.ssh,重命名为id_rsa

[/crayon]

提高ssh连接安全性

为了进一步提高安全性,我们可以禁用root账户ssh登录,强制使用密钥登录,并且修改ssh端口号,用root账号编辑 /etc/ssh/sshd_config文件,将下面这几行改为

[/crayon]

如果开启了防火墙,记得打开新的ssh端口。
– firewalld防火墙

[/crayon]

  • iptables防火墙

[/crayon]

记得重启ssh服务让这些改动生效

[/crayon]

本文出自扉启博客,转载时请注明出处及相应链接。

本文永久链接: https://www.feiqy.com/use-ssh-private-key/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Ɣ回顶部