阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何在SecureCRT上使用公钥登陆Linux服务器?

142次阅读
没有评论

共计 2490 个字符,预计需要花费 7 分钟才能阅读完成。

我以前一直使用口令通过 ssh 协议登陆 Linux 服务器,最近公司要求使用公钥登陆。说是安全,好吧。那我们整一下。那到底使用公钥登陆服务器有什么好处呢?其实我理解是这样的:

当我们创建了公钥和私钥(这是一对,登陆时要使用私钥解密公钥)后,把公钥给任何服务器,登陆 Linux 服务器时,只要我们的私钥不变,登陆任何服务器都是不需要密码的。而是使用公钥私钥进行身份验证。安全的多!这里也隐含了一个小细节,就是不要把你的私钥给丢了。否则,你想想,几百台服务器上好不容易把你的公钥配置好,而你的私钥丢失,怎么办?私钥是不能单独生成的!

其实网上的文档很多。各有千秋。估计是自己明白了,别人看起来比较费劲。这里我整理一下,以备自己查阅:

配置过程分为两大部分,SecureCRT 部分和 Linux 服务器部分。

SecureCRT 部分配置

1、首先生成公钥。

打开 SecureCRT(我的版本为 7.0,估计其他版本基本相同)程序,点击菜单栏的“工具”-》“创建公钥”。按照步骤执行。其中一步比较重要就是选择公钥的格式。建议选择“OpenSSH”, 否则在服务器端使用时需要转换为 OpenSSH 各式。何必多次一举呢。所以这里必须选择“OpenSSH”。如果选错了。重新生成一次就可以了。

然后选择公钥私钥存放的地方。默认 Identity 是私钥,Identity.pub 是公钥。

2、把 Identity.pub 文件上传到你要登陆的 Linux 服务器上。方法有很多,比如 ssh(先不要配置为公钥登陆),ftp 等。具体操作自己搞定。上传时选择 ASCII 方式。

3、在 SecureCRT 创建服务器连接。协议使用 ssh。在“鉴权”方法中,取消勾选“密码”。选择“公钥”,然后点击右边的属性按钮,在对话框中。

如何在 SecureCRT 上使用公钥登陆 Linux 服务器?

使用全局公钥设置:表示所有连接都使用该公钥连接服务器。

使用会话公钥设置:可以分别为每个连接指定不同的公钥。

下面的路径就是指明私钥的具体路径。注意了,这里要指明私钥的路径。

保存连接就可以了。

Linux 服务器端配置

1、sshd_conf 配置

主要修改如下几个内容:

PermitRootLogin no # 默认为注释,先配置为禁止 root 用户登陆,允许 root 登陆太危险了。好几次差点犯错误。切记切记!

RSAAuthentication yes #默认为注释,启用 RSA 认证

AuthorizedKeysFile .ssh/authorized_keys # 验证公钥的存放路径

PubkeyAuthentication yes # 默认为注释,启用公钥认证

PasswordAuthentication no # 禁止密码认证,默认是打开的。

保持后,重新启动 ssh 服务。在不同的 linux 服务器上,重启的方法不同。

RedHat,CentOS: service sshd restart      //redhat 7 的方法已经改了。

openbsd,freebsd: /etc/rc.d/sshd restart

2、重点部分:配置公钥存放哪的问题。

要把第一部分上传上来的公钥放到用户 home 目录的.ssh/ 目录下。这里说明一下。如果你想使用 test 账号登陆,就要把公钥放到 test 账户的.ssh 目录下。你可以直接把 Identity.pub 改为 authorized_keys. 当然也可还是用其他方法。

比如:cat Identity.pub >> authorized_keys

另外说明一下。.ssh 目录权限是 700,authorized_keys 文件权限为 644.

重点补充,如果还有其他人也想用自己的公钥登陆服务器,该如何操作呢?正常操作应该为该用户在服务器上创建一个账号,重新执行本次(Linux 服务器端配置,第 2 点)操作。当然,你也可以偷懒,把他的公钥也放到 test 账号的 authorized_keys 文件中。但两个公钥的内容之间使用换行符隔开。这样的方法还是不可取的。

最后,使用 SecureCRT 登陆 linux 服务器。

这里要注意,即使你使用公钥登陆服务器,当你连接的时候,还是要你输入用户名。为何呢?不是说公钥验证么?其实,服务器要知道用你的私钥和哪个用户的.ssh 目录下的 authorized_keys 文件内容进行解密。不可能用你的私钥和所有的用户 authorized_keys 文件进行匹配测试。

但是也有例外,如果你在 linux 系统上使用公钥登陆 Linux 服务器,就不需要指明用户。方法如下:

# ssh 172.16.24.222

为何呢?这时系统默认以为你登陆的远程账号就是你当前登陆的账号。

如果你设置了公钥口令,连接时比如输入。为了安全,这个口令是必须要有的。在 SecureCRT 中,口令被翻译为:通行短语。呵呵。

补充一下,在 linux 系统上,如何创建公钥和私钥呢?

方法很简单,执行 ssh-keygen 命令,按照提示就可以完成。完成后,自动会在当前用户的 home 目录,创建.ssh 文件夹。

服务器端配置和上面的方法相同。

用 SecureCRT 实现 WIN7 与 Linux 双向通信的问题及文件互传问题解决 http://www.linuxidc.com/Linux/2014-08/105412.htm

如何使用 SecureCRT6.6.2 通过 SSH 方式登录 Ubuntu 系统 http://www.linuxidc.com/Linux/2011-03/33024p4.htm

SecureCRT 连接 Ubuntu http://www.linuxidc.com/Linux/2013-06/85824.htm

Ubuntu 12.04 + 虚拟机 VMware 9 + Secure CRT + EditPlus 本地 C ++ 开发环境搭建 http://www.linuxidc.com/Linux/2013-05/84820.htm

利用 SecureCRT 在 Linux 与 Windows 之间传输文件 http://www.linuxidc.com/Linux/2014-08/105413.htm

Ubuntu 14.10 安装 SecureCRT 7.3 http://www.linuxidc.com/Linux/2014-10/108709.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2490字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中