河曲智叟 发表于 2024-7-29 02:45:50

《每天一个Linux下令》 -- (5)通过sshkey密钥登录服务器

欢迎阅读《每天一个Linux下令》系列!在本篇文章中,将先容通过密钥生成,使用公钥连接受理服务器。
概念
SSH 密钥是用于安全地访问长途服务器的一种方法。SSH 密钥由一对密钥构成:公钥和私钥。公钥存储在长途服务器上,私钥存储在本地计算机上。
通过公钥连接受理Linux服务器优缺点:
长处:


[*]安全性: 公钥身份验证比暗码身份验证更安全。公钥是一个加密的密钥对,私钥生存在客户端,而公钥生存在服务器上。
[*]无需暗码: 公钥身份验证消除了暗码管理的需求。用户无需记取复杂的暗码,而且在服务器上也不需要存储暗码。
[*]方便性: 一旦设置了公钥身份验证,用户就可以轻松地连接到服务器,而无需每次都输入暗码。
[*]多因素认证: 公钥身份验证可以与其他身份验证方法结合使用,实现多因素认证。例如,可以使用暗码和公钥的组合进行认证,提高安全性。
缺点:


[*] 密钥管理: 公钥身份验证需要有效地管理密钥对。如果私钥丢失或泄露,可能会导致安全题目。
[*] 初次设置复杂性: 初次设置公钥身份验证可能会相对复杂,特别是对于不认识密钥管理的用户来说。然而,一旦设置完成,后续的连接将更为简朴。
[*] 无法处理丢失的私钥: 如果用户丢失了私钥,他们将无法再次连接到服务器,除非管理员重新配置他们的公钥。
[*] 不适用于所有场景: 公钥身份验证不适用于所有场景。在某些情况下,可能需要使用其他身份验证方法,如暗码身份验证或证书身份验证。
总体而言,使用公钥连接受理Linux服务器提供了更高的安全性和便捷性,但需要合理管理密钥对以确保系统的团体安全。
生成密钥
在本地计算机上生成 SSH 密钥,可以使用 ssh-keygen
下令。
ssh-keygen
提示的意思(可以直接回车,留空默认):
此下令将提示您输入以下信息:


[*]文件名:用于存储密钥的文件名。默以为 id_rsa。
[*]暗码:用于保护私钥的暗码。可以留空。
[*]重复暗码:确认暗码。
生成密钥后,将在本地计算机上创建两个文件:


[*]id_rsa:私钥文件。
[*]id_rsa.pub:公钥文件。
# ll /root/.ssh
总用量 12
-rw-------. 1 root root 1675 12月8 08:00 id_rsa
-rw-r--r--. 1 root root399 12月8 08:00 id_rsa.pub
-rw-r--r--. 1 root root347 11月 21 05:19 known_hosts
将公钥复制到长途服务器
可以使用 cat 下令+长途下令+重定向组合
cat ~/.ssh/id_rsa.pub | ssh 用户名@远程服务器地址 'cat >> ~/.ssh/authorized_keys'
此下令将将公钥追加到长途服务器上的 authorized_keys 文件中。
演示示例:
假设本地服务器用户名为 root,IP为192.168.31.223,长途服务器的 IP 地点为 192.168.31.162,则生成密钥并将公钥复制到长途服务器的操作如下:
#在本地计算机上生成密钥,实行下令后,根据提示,可以设置私钥暗码,或者直接回车3次(默认),生成密钥。# ssh-keygen
Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:8IlsI9RZn/sDvn10OB5mvm8d+yP/0rVb5cwNQbT1wlg root@chatgpt-testThe key's randomart image is:+-------+|      .    .E .||   . o . . = o.||    . +   o . = .||   . . + . .   o ||    . = S o   ...||   o . . oB*=||          . o* =%||         o o=+=||          . ..+BO|+---------+ 将公钥复制到长途服务器

从192.168.31.223将公钥复制到192.168.31.162
cat ~/.ssh/id_rsa.pub | ssh root@192.168.31.162
'cat >> ~/.ssh/authorized_keys'
注意事项


[*]在生成密钥时,建议使用强暗码来保护私钥。
[*]在复制公钥时,请确保长途服务器上的 authorized_keys 文件具有可写权限。
其他方法
也可以使用 cp 下令来将公钥复制粘贴到长途服务器。
或者通过ssh-copy-id 用户名@长途服务器地点,此下令将公钥复制到长途服务器上的 authorized_keys 文件中。
下令操作
使用 SSH 密钥登录长途服务器的下令如下:
ssh [选项] 用户名@远程服务器地址
下令详细解释
ssh 下令的参数如下:
参数阐明选项可选参数,用于指定 SSH 连接的属性。用户名长途服务器上的用户名。长途服务器地点长途服务器的 IP 地点或主机名。 下令选项
选项阐明-i指定私钥文件的路径。-p指定长途服务器的端口号。-t启用终端模式。-v表现 ssh 下令实行的详细信息。 注意事项


[*]在使用 SSH 密钥登录长途服务器之前,需要在本地计算机上生成 SSH 密钥并将公钥复制到长途服务器。
[*]可以使用 ssh-keygen
下令生成 SSH 密钥。
[*]可以使用 cat 下令将公钥复制到长途服务器。
sshkey 下令的使用本领


[*]可以使用选项 -i 指定私钥文件的路径。如果不指定此选项,则 ssh 下令将使用默认的私钥文件。
[*]可以使用选项 -p 指定长途服务器的端口号。如果不指定此选项,则 ssh 下令将使用默认的端口号 22。
[*]可以使用选项 -t 启用终端模式。如果不指定此选项,则 ssh 下令将启用交互式模式。
[*]可以使用选项 -v 表现 ssh 下令实行的详细信息。
以下是一些使用 sshkey 设置完成后演示下令的示例:
示例1:使用默认的私钥文件登录长途服务器
ssh root@192.168.31.162
验证:
# ssh root@192.168.31.162
Last login: Thu Nov 30 08:24:49 2023 from 192.168.31.223# ip addr2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 02:11:32:2a:0f:96 brd ff:ff:ff:ff:ff:ff    inet 192.168.31.162/24 brd 192.168.31.255 scope global noprefixroute eth0 示例2:使用指定的私钥文件登录长途服务器
ssh -i ~/.ssh/id_rsa root@192.168.31.162
示例3:使用指定的端口号登录长途服务器
ssh -p 2222 root@192.168.31.162
通过SSH软件登录

soreceCRT无暗码登录centos7
将生成的私钥,通过下令sz ~/.ssh/id_rsa.pub下载到本地,通过crt软件读写私钥文件进行登录
即可无秘访问192.168.31.162


[*] 设置公钥优先级再前,暗码验证再后
https://i-blog.csdnimg.cn/blog_migrate/c861ac1f14ced370e93fcfed5f699db3.png
[*] 添加公钥(点击-属性,选择公钥在本机的路径)
https://i-blog.csdnimg.cn/blog_migrate/8645c6a14eaff2cfc86ea1e85c4f8c01.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 《每天一个Linux下令》 -- (5)通过sshkey密钥登录服务器