如何更简单、安全的连接 Linux 服务器。
使用工具还是 terminal
连接服务器经常使用的是 xshell、finall shell、tabby、terminus、electerm 等等工具,其实可以直接使用 SSH + Shell 的,不需要每次输入密码,除了传输文件外都很方便。
而且使用一个 ssh key 可以上传所有的服务器上使用(相对不安全,一个泄漏就都泄漏了),对于个人来说很好用了。
如何使用 SSH 登录服务器
Windows 中安装了 Git 后自带以下所有的使用的命令。
-
首先,客户端生成一对 SSH 密钥对;
ssh-keygen -t ed25519 -f ~/.ssh/server_key -
上传公钥到服务器,过程中会提示输入服务器的密码,填写后回车即可;
ssh-copy-id -i ~/.ssh/server_key.pub user@ip -
测试是否添加成功
ssh -i ~/.ssh/server_key.pub user@host -
编辑
~/.ssh/config文件:Host <custome-name> HostName 服务器ip或域名 User root port 22 PreferredAuthentications publickey IdentityFile ~/.ssh/server_key IdentitiesOnly yes -
打开 Git Bash 或 PowerShell
ssh <custome-name>
现在就可以不需要密码直接连接服务器了,是不是非常的简单呢!
ssh-copy-id 使用 SSH 协议连接到目标主机并上传 SSH 用户密钥。该命令会自动编辑服务器上
authorized_keys的文件。如果 .ssh 目录不存在,它将自动创建该目录;如果授权密钥文件不存在,它将自动创建该文件。因此推荐使用该命令上传而不是手动在服务端操作。另外,如果添加 -f 选项,可能会导致
authorized_keys文件中存在多个密钥副本。
服务器上传下载
对于经常使用拖拽方式上传、下载的用户来说,使用命令的方式就不友好了,所以下面的内容对于不喜欢命令的用户不用看了😅因为传输文件使用工具确实太方便了。
# 传输文件到服务器
scp <file> <custome-name>:/path/to
# 传输整个目录到服务器
scp -r <path> <custome-name>:/path/to/
# 下载服务器文件到当前客户端目录
scp <custome-name>:/path/to/file ./

说些什么吧!