wordpress移动端显示,洛阳seo,网站制作是那个,中山网站建设备案欢迎阅读《每天一个Linux命令》系列#xff01;在本篇文章中#xff0c;将介绍通过密钥生成#xff0c;使用公钥连接管理服务器。 概念
SSH 密钥是用于安全地访问远程服务器的一种方法。SSH 密钥由一对密钥组成#xff1a;公钥和私钥。公钥存储在远程服务器上#xff0c;… 欢迎阅读《每天一个Linux命令》系列在本篇文章中将介绍通过密钥生成使用公钥连接管理服务器。 概念
SSH 密钥是用于安全地访问远程服务器的一种方法。SSH 密钥由一对密钥组成公钥和私钥。公钥存储在远程服务器上私钥存储在本地计算机上。
通过公钥连接管理Linux服务器优缺点 优点
安全性 公钥身份验证比密码身份验证更安全。公钥是一个加密的密钥对私钥保存在客户端而公钥保存在服务器上。无需密码 公钥身份验证消除了密码管理的需求。用户无需记住复杂的密码而且在服务器上也不需要存储密码。方便性 一旦设置了公钥身份验证用户就可以轻松地连接到服务器而无需每次都输入密码。多因素认证 公钥身份验证可以与其他身份验证方法结合使用实现多因素认证。例如可以使用密码和公钥的组合进行认证提高安全性。
缺点 密钥管理 公钥身份验证需要有效地管理密钥对。如果私钥丢失或泄露可能会导致安全问题。 初次设置复杂性 初次设置公钥身份验证可能会相对复杂特别是对于不熟悉密钥管理的用户来说。然而一旦设置完成后续的连接将更为简单。 无法处理丢失的私钥 如果用户丢失了私钥他们将无法再次连接到服务器除非管理员重新配置他们的公钥。 不适用于所有场景 公钥身份验证不适用于所有场景。在某些情况下可能需要使用其他身份验证方法如密码身份验证或证书身份验证。
总体而言使用公钥连接管理Linux服务器提供了更高的安全性和便捷性但需要合理管理密钥对以确保系统的整体安全。
生成密钥
在本地计算机上生成 SSH 密钥可以使用 ssh-keygen 命令。
ssh-keygen提示的意思可以直接回车留空默认
此命令将提示您输入以下信息
文件名用于存储密钥的文件名。默认为 id_rsa。密码用于保护私钥的密码。可以留空。重复密码确认密码。
生成密钥后将在本地计算机上创建两个文件
id_rsa私钥文件。id_rsa.pub公钥文件。
[rootchatgpt-test ~]# ll /root/.ssh
总用量 12
-rw-------. 1 root root 1675 12月 8 08:00 id_rsa
-rw-r--r--. 1 root root 399 12月 8 08:00 id_rsa.pub
-rw-r--r--. 1 root root 347 11月 21 05:19 known_hosts将公钥复制到远程服务器 可以使用 cat 命令远程命令重定向组合
cat ~/.ssh/id_rsa.pub | ssh 用户名远程服务器地址 cat ~/.ssh/authorized_keys此命令将将公钥追加到远程服务器上的 authorized_keys 文件中。
演示示例
假设本地服务器用户名为 rootIP为192.168.31.223远程服务器的 IP 地址为 192.168.31.162则生成密钥并将公钥复制到远程服务器的操作如下
#在本地计算机上生成密钥执行命令后根据提示可以设置私钥密码或者直接回车3次默认生成密钥。
[rootchatgpt-test ~]# 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/sDvn10OB5mvm8dyP/0rVb5cwNQbT1wlg rootchatgpt-test
The keys randomart image is:
---[RSA 2048]----
| . .E .|
| . o . . o.|
| . o . .|
| . . . . o |
| . S o ...|
| o . . o B*|
| . o* %|
| o o|
| . ..BO|
----[SHA256]-----将公钥复制到远程服务器
从192.168.31.223将公钥复制到192.168.31.162
cat ~/.ssh/id_rsa.pub | ssh root192.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 root192.168.31.162验证
[rootchatgpt-test ~]# ssh root192.168.31.162
Last login: Thu Nov 30 08:24:49 2023 from 192.168.31.223
[rootlocalhost ~]# ip addr
2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 02:11:32:2a:0f:96 brd ff:ff:ff:ff:ff:ffinet 192.168.31.162/24 brd 192.168.31.255 scope global noprefixroute eth0示例2使用指定的私钥文件登录远程服务器
ssh -i ~/.ssh/id_rsa root192.168.31.162示例3使用指定的端口号登录远程服务器
ssh -p 2222 root192.168.31.162通过SSH软件登录
soreceCRT无密码登录centos7
将生成的私钥通过命令sz ~/.ssh/id_rsa.pub下载到本地通过crt软件读写私钥文件进行登录
即可无秘访问192.168.31.162 设置公钥优先级再前密码验证再后 添加公钥点击-属性选择公钥在本机的路径