SSH是一种网络协议,用于计算机之间的加密登录,其具体的实现有很多,既有开源实现的OpenSSH,也有商业实现方案。Linux常用OpenSSH。

使用SSH协议,客户端需要安装openssh-clients ,服务端需要安装openssh-server(系统默认安装好了)。

本文使用CentOS7系统,并用root用户登陆,服务端需要保证 /etc/ssh/sshd_config 的配置正确,一些云服务器默认是不允许ROOT用户远程登陆的。

# 是否允许以root用户身份登录,默认可以
PermitRootLogin  yes
# 是否允许密码登陆,默认可以
PasswordAuthentication yes
# 是否允许公钥验证登陆,默认可以
PubkeyAuthentication yes

使用密码登陆

OpenSSH使用非对称加密方案的登陆流程如下:

实战

1、准备两台安装了CentOS7的主机,一台作为客户端,一台作为服务端。客户端主机需要安装openssh-clients

yum install -y openssh-clients    

2、客户端执行  ssh root@服务端IP 

3、首次登陆时,服务端会返回服务端指纹让客户端确认,服务端的指纹在互联网公示出来,以避免黑客劫持请求,伪造指纹。

点击回车  // 信任指纹

4、输入服务端root用户的密码

客户端就登陆服务端了。可执行 exit 命令退出服务端。

免密登陆

每次登陆要输入密码导致诸多不便,SSH提供了免密登陆功能。免密登陆需要客户端生成密钥对,并将公钥追加到服务端的authorized_keys文件中。

免密登陆流程如下

实战

1、准备两台安装了CentOS7的主机,一台作为客户端,一台作为服务端。客户端主机需要安装openssh-clients

yum install -y openssh-clients    

2、客户端执行  ssh-keygen  命令生成公钥与私钥。默认使用RSA非对称加密算法,此命令会询问秘钥对存放位置,按回车使用默认即可,提示输入passphrase也是按回车使用默认即可。

生成的密钥对默认存放在 当前用户的家目录/.ssh目录中,id_ras是私钥,id_rsa.pub是公钥。需要将id_rsa.pub公钥内容追加到服务端的 authorized_keys 文件中。

3、客户端执行  ssh-copy-id root@服务端IP  将本机的id_rsa.pub公钥内容追加到服务端的/root/.ssh/authorized_keys 文件中。

然后提示需要输入服务端root用户的密码,输入密码,回车即可


4、客户端执行 ssh root@服务端IP  ,就直接登录到服务端了

补充:第3步也可以拷贝客户端的id_rsa.pub公钥内容,然后追加到服务端的/root/.ssh/authorized_keys文件中,与执行  ssh-copy-id root@服务端IP  命令是同样的效果。

服务端进入~/.ssh

cd ~/.ssh

新建authorized_keys

vim authorized_keys

将客户端id_rsa.pub追加到服务端authorized_keys中

修改服务端authorized_keys、.ssh权限

chmod 600 authorized_keys
chmod 700 ~/.ssh

特别提醒:使用xshell粘贴内容经常少粘贴一两个开头的字符,导致公钥不对,无法登录,请认真检查粘贴后的公钥是否完整。

服务端加了两个公钥

Xshel使用公钥免密登陆

1、点击“工具” →“ 新建用户密钥生成向导”

2、使用默认的RSA算法生成密钥对。点击下一步

3、生成公钥对页面,点击下一步即可

4、用户密钥信息页面,输入密钥名称,加密密钥的密码不填,点击下一步。

5、提示密码为空,是否继续,点击“是”

6、点击“保存为文件”,将公钥保存到本地,一般是保存到用户的.ssh目录下,公钥以 .pub 结尾。

7、保存到本地后点击“完成”

8、在“用户密钥”中就多了一个私钥。

9、将本地的 id_rsa_my.pub 内容追加到服务器的 /root/.ssh/authorized_keys 文件中

vim /root/.ssh/authorized_keys

10、Xshell使用公钥来接服务端主机

连接页面填写服务端主机IP

用户身份认证页面配置

方法:Public key
用户名:root
用户密钥:点击浏览,选择刚才生成的 id_rsa_my
密码:为空

这样配置后,本地电脑也能实现公钥免密登陆Linux。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐