欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > Linux配置ssh登陆

Linux配置ssh登陆

2024/12/25 19:40:52 来源:https://blog.csdn.net/qq_45656544/article/details/144676083  浏览:    关键词:Linux配置ssh登陆

一、ssh密钥登陆原理

ssh登陆原理

SSH(Secure Shell)使用公钥-私钥(非对称)加密技术来实现安全的远程登录和其他网络服务。使用SSH密钥登录时,主要涉及两个关键部分:公钥(public key)和私钥(private key),这一对密钥通过非对称加密算法生成。这里是基本流程:

  1. 生成密钥对:在用户端,生成一对密钥,包含一个公钥和一个私钥。公钥是可以公开的,而私钥必须保密。

  2. 部署公钥:将生成的公钥放置到远程服务器的特定文件中(通常是~/.ssh/authorized_keys)。这样,带有该公钥的服务器就“认识”了这个密钥对。

  3. 认证过程:当用户尝试通过SSH连接服务器时,服务器会用用户提供的公钥对一个随机消息进行加密,然后发送给用户端。用户端使用私钥对消息进行解密,并将解密的消息发送回服务器进行验证。如果验证成功(即私钥正确匹配公钥),用户就被授权登录。

非对称加密

SSH密钥登录原理和非对称加密基本概念紧密相关。这涉及到加密和解密数据所用的不同的密钥:一个公钥和一个私钥。

非对称加密是一种加密方法,它使用一对密钥:公钥和私钥。公钥和私钥是数学相关的一对密钥,公钥可以安全地共享给任何人,而私钥则必须保密。使用公钥加密的数据只能使用对应的私钥解密,反之亦然。这种特性使非对称加密成为实现安全通信的理想选择。

.ssh/文件内容

id_rsa :私钥,别台机器想登录你,你就把私钥发给它
id_rsa.pub :为公钥,你想登录别台机器,你就把公钥发给他,并叫他安装到authorized_keys
authorized_keys: 里面记录了服务器授权的所有公钥
known_hosts:ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts

二、服务器配置ssh密钥

1. 生成SSH密钥对

首先,在本地计算机上生成一个SSH密钥对。打开终端或命令行,并运行以下命令:

ssh-keygen -t rsa -b 4096

这将生成一个RSA类型的密钥对(一个公钥和一个私钥),密钥长度为4096位。按照提示操作,你可以为私钥设置密码(推荐,增加安全性)并选择保存密钥对的路径。默认情况下,SSH密钥会被保存在~/.ssh目录下,私钥名为id_rsa,公钥名为id_rsa.pub

2. 将公钥复制到服务器

接下来,需要将公钥复制到你希望使用密钥登录的Linux服务器上。把公钥的内容复制到./ssh/authorized_keys文件中

cd ~/.ssh 
touch authorized_keys
cat id_rsa.pub >> authorized_keys

配置文件权限

chmod 600 authorized_keys  
chmod 700 ~/.ssh

3. 确认密钥登录

如果一切设置正确,你将能够不需要密码就登录服务器。确认你能够成功登录后,考虑禁用SSH密码认证以增强安全性,只允许密钥认证方式。

4. 禁用密码认证(可选)

在服务器上,编辑SSH配置文件/etc/ssh/sshd_config,找到以下几行并进行修改:

PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM no

完成修改后,重启SSH服务使配置生效:

sudo systemctl restart sshd

三、本地使用ssh密钥登陆

1. 使用SSH密钥登录

公钥完成复制后,你现在应该能够使用SSH密钥来登录服务器了。只需要运行:

ssh username@server_address

如果你私钥不是保存在默认位置,或者你有多个密钥,可以使用-i选项指定私钥的路径:

ssh -i /path/to/your/privatekey username@server_address

如果你之前为私钥设置了密码,这时会要求你输入密码。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com