随着技术的不断迭代更新,在 Linux 系统中使用 Vim、nano 等基于 Shell 终端的编辑器(我曾经也是个 vimer,但是 VS Code 实在太香了),已经很难适应当下的开发效率。因此大多数开发者开始使用 VS Code 远程连接 Linux 系统来解决编程效率的问题,VS Code 本身也是个优秀的代码编辑器,可以安装很多插件来扩展功能,其中就有 SSH 工具,远程连接到 Linux 系统,可以说就是在 VS Code 上编辑代码、编译代码、运行程序,基本就是一条龙服务。
一、安装 Remote - SSH 扩展并连接远程主机
ssh username@remote_host ssh -p port_number username@remote_host
第一行是默认端口为 22 的连接命令,第二行是自定义端口号,port_number
为端口号,username
为用户名,remote_host
为 IP 地址。下面的例子是 SSH 连接我的 Ubuntu 主机的命令(端口号被我修改为 2222):
ssh -p 2222 grayson@192.168.31.90
Host:这是一个用户定义的别名,用于指代远程主机。可以在在终端中执行 ssh 加上这个别名来代替替代 ssh username@remote_host。
HostName:指定远程主机的实际地址或主机名。
Port:指定 SSH 连接使用的端口号。
User:指定连接到远程主机时使用的用户名。
二、免密连接远程主机
每次连接都需要输入密码有稍许麻烦,一台机器想要免密访问其他机器,需要把自己的公钥内容发送到别的机器的 authorized_keys 中,并在本机 config 文件中配置私钥文件位置。以下是实现免密码连接的一般步骤:
1. 生成 SSH 密钥对
在本地系统上,也就是 Windous 系统生成 SSH 密钥对。按组合键 Win + r 打开命令行运行窗口,输入 cmd 并回车打开 CMD 命令窗口。使用 ssh-keygen 命令生成密钥对。默认情况下,这将在 ~/.ssh/ 目录下(~ 是主目录,CMD 打开后默认就是主目录)生成一个公钥文件(id_rsa.pub)和一个私钥文件(id_rsa)。当然,我们可以选择在生成密钥对时为其指定不同的文件名,如下命令,-f 选项后面的 ./.ssh/id_rsa_windows 就包含了路径以及最后生成的密钥对名字。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ./.ssh/id_rsa_windows
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f C:\Users\<YourUsername>\.ssh\id_rsa_windows
2. 将公钥复制到远程服务器
将本地系统上生成的公钥文件内容复制到远程服务器的,要将公钥的内容追加到 authorized_keys 文件,发送到远程主机。
同样在 CMD 窗口使用 scp 命令把 id_rsa_windows.pud 拷贝到 Ubuntu 系统,具体命令如下(别什么都照抄,这个是我的远程主机和端口号):
scp -P 2222 ./.ssh/id_rsa_windows.pub garyson@192.168.31.90:~
然后在终端窗口输入 cat id_rsa_windows.pub >> ./.ssh/authorized_keys
, 把公钥的内容复制到 .ssh/authorized_keys
里面,
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
3. 配置 SSH 客服端
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
sudo systemctl restart sshd
4. 连接测试
本文链接:https://blog.runxinyun.com/post/160.html 转载需授权!
留言0