共计 1811 个字符,预计需要花费 5 分钟才能阅读完成。
1. 背景介绍
平时我们都是通过输入账号和密码的方式登陆远程终端,那有没有其他的玩法呢?答案是:当然有!下面就介绍一种通过密钥的方式登陆 SSH。
工具准备:一台电脑(推荐 Win10),一台虚拟机(推荐 VMware Workstation11),SSH 登陆工具(xshell,securecrt,putty,推荐 xshell),Linux 系统(RedHat,CentOS,debian,Ubuntu,推荐 centos7.3)。
下面开始动手操作。
2. 实验步骤
假设你已经通过 ssh 工具登陆上了 linux 终端。
(1)生成公钥和私钥
ssh-keygen -t rsa
Enter file in which to save the key (/root/.ssh/id_rsa): ## 直接回车使用默认路径
Created directory ‘/root/.ssh’.
Enter passphrase (empty for no passphrase): ## 输入密码
Enter same passphrase again: ## 重复密码
在 /root/.ssh/ 目录下会生成两个文件,id_rsa 为私钥,id_rsa.pub 为公钥。私钥自己下载到本地电脑妥善保存,公钥则可以任意公开。
(2)下载私钥到 windows
sz /root/.ssh/id_rsa
如果没有请安装软件包 lrzsz(yum install -y lrzsz)
(3)导入公钥
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
(4)更改 SSH 配置文件
修改 SSH 的配置文件 /etc/ssh/sshd_config,找到下面 3 行:
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
将前面的 #去掉后保存。重启 SSH 服务,运行命令:systemctl restart sshd
(5)xshell 配置(看图)
1. 新建一个会话
2. 选择身份验证方式
3. 导入私钥
4. 输入自己设定的密码
5. 确定用户密钥
6. 输入密码
7. 选择相应的会话
8. 成功登陆
(6)关闭 SSH 密码登陆
修改 SSH 的配置文件 /etc/ssh/sshd_config,找到下面 1 行:
PasswordAuthentication yes
修改为:
PasswordAuthentication no
重启 SSH 服务,并运行命令:
systemctl restart sshd
下面关于 SSH 相关的文章您也可能喜欢,不妨参考下:
Ubuntu 下配置 SSH 服务全过程及问题解决 http://www.linuxidc.com/Linux/2011-09/42775.htm
Ubuntu 14.04 下安装 Samba 及 SSH 服务端的方法 http://www.linuxidc.com/Linux/2015-01/111971.htm
集群环境 SSH 免密码登录设置 http://www.linuxidc.com/Linux/2017-03/141296.htm
提高 Ubuntu 的 SSH 登陆认证速度的办法 http://www.linuxidc.com/Linux/2014-09/106810.htm
远程 SSH 连接服务与基本排错 http://www.linuxidc.com/Linux/2017-05/143738.htm
使用 SSH 公钥密钥自动登陆 Linux 服务器 http://www.linuxidc.com/Linux/2017-02/140642.htm
开启 SSH 服务让 Android 手机远程访问 Ubuntu 14.04 http://www.linuxidc.com/Linux/2014-09/106809.htm
SSH 非交互式密码授权远程执行脚本 http://www.linuxidc.com/Linux/2017-04/143180.htm
在 Linux 中为非 SSH 用户配置 SFTP 环境 http://www.linuxidc.com/Linux/2014-08/105865.htm
Linux 上实现 SSH 免密码登陆远程服务器 http://www.linuxidc.com/Linux/2017-05/144165.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-06/144997.htm