ssh 是远程连接的利器, 可以说凡是涉及到 linux 服务器, ssh 就是一个绕不开的话题. 本文作为一个教程, 尽可能详细的帮助读者设置 ssh, 并给出一些常用的 ssh 配置方法 (主要用于 linux 系统的远程登录和文件传输).
1. 简介
ssh 分为两个部分, sshd
服务端和 ssh
客户端. sshd
通常在服务器上已经建好并处于可用状态, 因此本文只讨论 ssh 客户端, 即用户通过 ssh 客户端远程连接到服务器上进行操作.
ssh 是一个多平台软件, 在 Windows/Linux/Mac 上均有相应的程序.
- Windows 下 (以 Win11 为例), 右键开始菜单, 打开【Windows 终端】(Win10 下是打开 【PowerShell】), 输入
Get-Command ssh
即可查看到 ssh 的安装路径在什么位置, 比如:
C:\Windows\System32\OpenSSH\ssh.exe
此时输入 ssh
回车, 如果有如下的返回结果, 则说明 ssh 已经正常安装了.
$ ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
[-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
[-i identity_file] [-J [user@]host[:port]] [-L address]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-Q query_option] [-R address] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] destination [command]
如果找不到 ssh, 则可以从 Github 下载 OpenSSH (选择 .msi
后缀的), 然后双击安装即可.
- Linux 下, 通常默认就有 ssh
2. 使用方法
2.1 密码登录
执行以下命令, 然后输入密码, 即可通过密码登录到远程服务器.
ssh <用户名>@<服务器地址> -p <端口>
注意: 如果使用默认端口 22, 则 -p <端口>
可以不写.
2.2 密钥登录 (免密登录)
我们可以通过 ssh-keygen
来生成密钥对. 密钥对包含公钥和私钥, 创建密钥如下:
# Windows
ssh-keygen -t rsa -b 2048 -f C:\Users\<用户名>\.ssh\mykey
# Linux
ssh-keygen -