Linux中使用快捷方式加速SSH访问
如果您使用Linux或管理远程服务器(如AWS、DigitalOcean上的云服务器,甚至是您网络上的本地机器),您可能会使用如下命令连接到它们:
ssh ravi@192.168.1.50 -p 2222
让我们把它分解一下,这样就非常清晰了:
ssh
: 这是启动与另一台机器建立安全连接的命令。ravi
: 这是您在远程服务器上登录时使用的用户名。192.168.1.50
:这是服务器的IP地址(有点像它的电话号码)。-p 2222
:这告诉SSH连接到2222端口(服务器可能没有使用默认的22端口)。
现在,这个单行代码乍一看可能很短,但每天都输入它——而且在多个服务器上输入——很快就会变得令人沮丧。
随着时间的推移,实际上感觉是这样的:
- 你必须记住每个服务器的IP地址(容易忘记!)
- 您必须输入或复制粘贴正确的端口号。
- 如果您使用的是 SSH 密钥,您可能还需要在命令中添加
-i /path/to/key.pem
。 - 你每天可能会对多个服务器,甚至几十个服务器反复这样做。
假设你管理三个服务器:
ssh ravi@192.168.1.50 -p 2200
ssh ravi@192.168.1.50 -p 2222
ssh ravi@192.168.1.50 -i ~/.ssh/dev-key.pem
现在想象一下每天手动输入这些内容好几次。这不仅令人厌烦,而且容易出错。一个错误的IP或端口,你就会浪费时间进行故障排除。
目标:使用简单的快捷方式
如果你能简单地输入一些简短易记的内容,那不是太棒了吗?
ssh server1
或
ssh devbox
并立即连接到正确的服务器,所有细节(IP、端口、用户名、密钥)都已为您填写好?
- 无需记住IP地址
- 无需重新输入端口
- 无需添加SSH密钥路径
- 只需一个简单的昵称来连接
在这个易于遵循的指南中,我将向您展示如何像专业人士一样自动完成SSH命令,这样您就不必一遍又一遍地输入冗长而乏味的命令。
如何在Linux中设置SSH快捷方式
要创建 SSH 快捷方式,您需要在您的主目录中创建或打开 ~/.ssh/config
文件。
vim ~/.ssh/config
文件现在已打开,我们来创建你的第一个 SSH 快捷方式。
Host server1HostName 192.168.122.74User raviPort 2222
让我们逐行分析一下:
主机
– 这是您在终端中使用的昵称(您可以将其命名为任何名称!)HostName
– 您远程服务器的 IP 地址或域名。User
- 您用来登录该服务器的用户名.Port
- SSH 端口号(默认为 22,仅在你的服务器使用自定义端口时使用)。
按 Ctrl + X
,然后按 Y
,再按 Enter
保存并退出文件。
现在,不用再输入长长的SSH命令,只需运行:
ssh server1
就是这样 - 你已连接到你的服务器!
该快捷方式使用您在配置文件中保存的所有详细信息(用户名、IP、端口),因此您不必每次都记住或输入它们。
想要添加更多服务器吗?
您可以重复相同的过程并像这样添加更多服务器:
Host aws-serverHostName 3.115.120.100User ec2-userPort 22IdentityFile ~/.ssh/aws.pemHost dev-machineHostName 10.0.0.101User ubuntu
每个区块以独特的 Host
名称开头,并包含该特定服务器的详细信息。
那么就这样连接:
ssh aws-server
ssh dev-machine
如何使用 SSH 密钥设置无密码 SSH 登录
到目前为止,我们已经学习了如何使用 ~/.ssh/config
文件为 SSH 命令设置快捷方式,但我们仍然需要每次输入密码。
为了避免这种情况,我们需要使用SSH密钥设置无密码认证,这是一种更安全、更快速的方式,可以在不使用密码的情况下登录远程服务器。
它们像锁和钥匙一样工作:
- 私钥(您的个人密钥):保留在您的本地计算机上。
- 公钥(你的ID):放在服务器上。它告诉服务器,“嘿,如果有人拥有匹配的私钥,就让他们进来!”.
生成一个新的 SSH 密钥对(如果您还没有的话)
如果你在你的 .ssh 目录中看到一个像 id_rsa
或 id_ed25519
的文件,这意味着你已经有了 SSH 密钥对。如果没有,你可以使用以下命令生成一个新的 SSH 密钥对。
ssh-keygen -t rsa -b 4096 -C "email"
现在您的 SSH 密钥已创建在 ~/.ssh/id_rsa
(您的私钥)和 ~/.ssh/id_rsa.pub
(您的公钥).
接下来,将公钥复制到你的服务器;在这里,你将被要求最后一次输入密码。
ssh-copy-id -i ~/.ssh/id_rsa.pub ravi@192.168.1.50
现在打开你的 /.ssh/config
文件,并添加 IdentityFile,以及你私钥文件的路径。
Host server1HostName 192.168.122.74User raviPort 2222IdentityFile ~/.ssh/id_rsa
下次,当你尝试SSH时,它将自动使用你的私钥并在不询问密码的情况下登录。
ssh server1
额外: SSH 主机的标签完成功能
您可以在您的 ~/.bashrc
文件中为 SSH 昵称启用标签补全。
nano ~/.bashrc
在最后添加这一行:
complete -o default -o nospace -F _ssh ssh
保存并运行:
source ~/.bashrc
现在输入ssh
并按TAB
键,这将显示您在配置中添加的所有主机名。
最终想法
使用 SSH 配置文件是任何从事服务器工作的人最简单但最强大的技巧之一,因为它可以节省时间,减少错误,并帮助您改善 SSH 工作流程。
🔥运维干货分享
-
系统规划与管理师备考经验分享
-
软考高级系统架构设计师备考学习资料
-
软考中级数据库系统工程师学习资料
-
软考高级网络规划设计师备考学习资料
-
Kubernetes CKA认证学习资料分享
-
AI大模型学习资料合集
-
免费文档翻译工具(支持word、pdf、ppt、excel)
-
PuTTY中文版安装包
-
MobaXterm中文版安装包
-
pinginfoview网络诊断工具中文版
-
Xshell、Xsftp、Xmanager中文版安装包
-
办公室摸鱼神器,伪装电脑系统更新中
-
Typora简单易用的Markdown编辑器
-
Window进程监控工具,能自动重启进程和卡死检测
-
毕业设计高质量毕业答辩 PPT 模板分享
-
IT行业工程师面试简历模板分享