Linux ssh 命令教程:安全远程登录 🔒
1. 简介
-
ssh
命令用于安全登录远程主机,以便在远程机上执行命令或传输数据。 -
ssh
命令使用 SSH 协议进行安全通信,使用该协议的还有(用于文件传输的)scp、sftp 等命令。
2. 常见操作概览
操作 | 命令格式 | 说明 |
---|---|---|
登录到远程主机 | ssh <用户名>@<主机名> | 使用指定用户名登录到远程主机。 |
指定端口登录 | ssh -p <端口> <用户名>@<主机名> | 使用非默认端口登录到远程主机。 |
执行远程命令 | ssh <用户名>@<主机名> <命令> | 在远程主机上执行命令。 |
显示帮助信息 | ssh -h | 显示 ssh 命令的帮助信息。 |
3. 密码登录
3.1 登录到远程主机
远程主机既可以是 ip,也可以是域名,例如要使用默认用户名登录到远程主机 remote.example.com
:
$ ssh remote.example.com
如果需要使用特定的用户名 user
登录:
$ ssh user@remote.example.com
密码登录
每次登陆需要输入远 程账号的密码,颇为不便。后面会配置免密登陆。
3.2 指定端口登录
如果远程主机的 SSH 服务使用非默认端口(例如 2222):
$ ssh -p 2222 user@remote.example.com
ssh默认端口为22
3.3 执行远程命令
要在远程主机上执行一个命令(如 ls -l
):
$ ssh user@remote.example.com 'ls -l'
如果命令有输出,会显示到当前终端:
Desktop
docs
Downloads
Music
...
4. 免密登陆
4.1 生成密钥
如果是新装的系统还没有生成过ssh密钥,可以使用以下命令生成密钥:
$ ssh-keygen
命令启动后,会发起三次确认,每次需要用户按 Enter 键确认
Generating public/private rsa key pair.
Enter file in which to save the key (/home/soulio/.ssh/id_rsa):
/home/soulio/.ssh/id_rsa already exists.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
生成密钥成功,输出如下提示,指明了密钥文件的存放位置:
Your identification has been saved in /home/soulio/.ssh/id_rsa
Your public key has been saved in /home/soulio/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:WMtuxei0ZQvhOprd+7Q9GA/ZD6lADQiefKExOzI/waA soulio@vm-ubuntu
The key's randomart image is:
+---[RSA 3072]----+
| . +... |
| . = *... |
|E o X . oo |
| + + =.=. |
| o ..S =o . |
| . =.*+.+ |
| o =.o* o |
| + + .ooo . |
| o . ooo .. |
+----[SHA256]-----+