SSH使用基础
SSH(Secure Shell)是一种网络协议,用于在不安全的网络中安全地运行命令和应用程序。
快速开始
连接到远程服务器:
1
ssh username@hostname
其中,
username是你的用户名,hostname是远程服务器的地址。使用密钥对连接:
1
ssh -i path/to/private_key.pem username@hostname
这将使用指定的私钥文件连接到远程服务器。
连接时指定端口号:
1
ssh -p port_number username@hostname
其中,
port_number是你想要连接的远程服务器的端口号。创建SSH密钥对:
1
ssh-keygen
这个命令会生成一对公钥和私钥。通常情况下,公钥会被添加到远程服务器上的
~/.ssh/authorized_keys文件中,以便无密码登录。测试SSH连接:
1
ssh -vT username@hostname
-v选项会显示详细的输出,帮助你排查连接问题。使用代理跳板机连接到远程服务器:
1
ssh -J username_jump@jump_host username_target@target_host
其中,
username_jump是跳板机的用户名,jump_host是跳板机的地址,username_target和target_host是目标服务器的用户名和地址。
相关概念
SSH协议:
- SSH是一种网络协议,用于在不安全的网络中安全地运行命令和应用程序。
- 它使用加密技术来保护数据传输的安全性,包括用户认证信息和数据交换。
公钥/私钥认证:
- 公钥和私钥是一对密钥,通常用于SSH登录。公钥被添加到远程服务器上,而私钥保存在本地计算机上。
- 当你尝试使用私钥登录时,远程服务器会验证私钥的匹配性,从而确认你的身份。
SSH配置文件:
- 你可以在
~/.ssh/config文件中设置一些默认的SSH选项。例如:这个配置将自动设置环境变量和已知主机列表,并禁用严格的主机密钥检查。1
2
3
4Host *
SendEnv LANG LC_*
HashKnownHosts yes
StrictHostKeyChecking no
- 你可以在
SSH代理:
- SSH代理是一个用于管理SSH密钥的守护进程,它可以帮助你在多个终端或会话之间共享同一个私钥。
- 使用
ssh-agent命令启动SSH代理:1
eval "$(ssh-agent -s)"
- 然后,你可以使用
ssh-add命令将私钥添加到SSH代理中:1
ssh-add path/to/private_key.pem
SSH隧道:
- SSH隧道是一种在本地计算机和远程服务器之间建立安全连接的方法。它通常用于访问只有内网才能访问的服务。
- 例如,你可以使用以下命令创建一个SSH隧道来访问运行在内网中的数据库:这将把本地计算机的
1
ssh -L local_port:localhost:remote_port username@hostname
local_port端口映射到远程服务器的remote_port端口。
SSH端口转发:
- SSH端口转发是一种将网络流量从一个网络接口重定向到另一个网络接口的方法。它通常用于绕过防火墙限制。
- 例如,你可以使用以下命令创建一个SSH隧道来访问被防火墙阻止的Web服务器:这将把本地计算机的
1
ssh -L local_port:remote_host:remote_port username@hostname
local_port端口映射到远程服务器的remote_host和remote_port。
- Title:
- Author: 清夏晚风
- Created at : 2026-01-13 16:48:23
- Updated at : 2026-01-13 16:48:23
- Link: https://blog.kimikkorow.eu.org/计算机基础/操作系统相关/操作系统使用相关/Linux/公共基础/other/SSH/SSH使用基础/
- License: This work is licensed under CC BY-NC-SA 4.0.