Linux 使用ssh密钥认证方式登陆另一台linux服务器

简介: Linux 使用ssh密钥认证方式登陆另一台linux服务器

环境说明

我们有一台A服务器,以及B服务器,总共两台


我们登陆到A服务器,然后在A服务器进行登陆B服务器

如果使用账号密码登陆,那么每次就需要输入密码

我们进行ssh密钥认证的方式就可以免密码登陆了


开始

在B服务器执行以下步骤

在您的 Linux 服务器上创建一个 authorized_keys 文件,以便您可以将您的 SSH 公钥添加到该文件中,以便您可以通过 SSH 密钥认证来访问该服务器。

要创建 authorized_keys 文件,可以按照以下步骤操作:


1.打开终端,登录到您的 Linux 服务器。

2.进入您的 home 目录,如果该目录不存在,则可以使用以下命令进行创建:

mkdir -p ~/.ssh

3.使用以下命令创建 authorized_keys 文件:

touch ~/.ssh/authorized_keys

4.使用文本编辑器(例如 vi 或 nano)打开 authorized_keys 文件,将您的 SSH 公钥复制到该文件中并保存。

5.为了确保该文件的权限正确,请使用以下命令设置 authorized_keys 文件的权限为 600:

chmod 600 ~/.ssh/authorized_keys

完成上述步骤后,您的 SSH 公钥就已经被添加到了您的 Linux 服务器上,您可以使用 SSH 密钥认证方式访问该服务器了。


在A服务器执行一下步骤

1.生成密钥对:

$ ssh-keygen -t rsa -b 2048

或者使用以下命令

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"


执行完后,会在~/.ssh/目录下生成id_rsa和id_rsa.pub两个文件,其中id_rsa是私钥,需要妥善保管,id_rsa.pub是公钥,需要放到远程服务器上进行认证。


2.将公钥添加到远程服务器:

将公钥id_rsa.pub的内容复制到远程服务器的~/.ssh/authorized_keys文件中,可以使用以下命令实现:

$ ssh-copy-id user@remote-server

这个命令会将本地公钥添加到远程服务器上的authorized_keys文件中,如果该文件不存在,则会自动创建。在执行该命令前,请确保远程服务器上的~/.ssh/目录的权限是700,authorized_keys文件的权限是600。


完成,测试连接

1.使用以下命令测试连接服务器:

ssh -i /path/to/private/key username@server_ip

其中,/path/to/private/key是你的私钥文件路径,username是服务器的用户名,server_ip是服务器的IP地址或域名。


2.如果连接成功,你将会看到类似于以下的提示信息:

Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-53-generic x86_64)
或者
Last login: Tue Feb 21 09:54:26 2023 from ****

3.登陆成功后进行退出:

可以使用exit命令退出。如果您正在使用ssh客户端,则可以使用菜单或命令来关闭连接,具体方式因客户端不同而异。一般来说,您可以使用快捷键“Ctrl + D”或“Ctrl + C”来退出连接。


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
3天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
2月前
|
安全 Linux 网络安全
Linux端的ssh如何升级?
Linux端的ssh如何升级?
261 59
|
3月前
|
机器学习/深度学习 存储 Linux
【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
|
3月前
|
安全 网络协议 Linux
在Linux中,什么是SSH,并且如何使用它?
在Linux中,什么是SSH,并且如何使用它?
|
3月前
|
监控 安全 Ubuntu
在Linux中,如何进行SSH服务配置?
在Linux中,如何进行SSH服务配置?
|
3月前
|
安全 算法 Linux
在Linux中,什么是SSH?它是如何工作的?
在Linux中,什么是SSH?它是如何工作的?
|
3月前
|
Linux 网络安全
Linux开启ssh
Linux开启ssh
38 0
|
3月前
|
安全 Linux 网络安全
在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认的22端口,该如何做?
在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认的22端口,该如何做?
|
3月前
|
安全 Linux Shell
Linux系统之间实现免密码登录(SSH无密码登录
【8月更文挑战第21天】要在Linux系统间实现SSH免密码登录,需先在源机器生成SSH密钥对,然后将公钥复制到目标机器的`.ssh/authorized_keys`文件中。可通过`ssh-keygen`命令生成密钥,并使用`ssh-copy-id`命令传输公钥。最后测试SSH连接,确保能无密码登录。若目标机器缺少相关目录或文件,需手动创建并设置适当权限。完成这些步骤后,即可实现安全便捷的免密码登录。
107 0
|
3月前
|
安全 Linux 网络安全
在Linux中,如何配置SSH以确保远程连接的安全?
在Linux中,如何配置SSH以确保远程连接的安全?
下一篇
无影云桌面