linux 最主流远程连接命令是 ssh,全称 Secure Shell,默认端口 22,加密传输,用来从一台 linux 主机远程登录另一台 linux 服务器,也支持 windows 终端使用 ssh 连接,除了密码登录,还支持密钥免密登录,是云服务器运维最核心命令,除了 ssh 之外,还有老式 telnet,但是 telnet 明文传输不安全,现在基本淘汰,另外还有 scp sftp 是基于 ssh 协议做远程文件传输,很多新手会把 ssh 登录和 scp 传文件混淆。
一 基础命令格式
ssh 用户名 @服务器 IP
示例
ssh root@192.168.1.100
如果服务器 ssh 端口不是默认 22,需要加 - p 指定端口
ssh -p 2222 root@192.168.1.100
二 常用参数说明
| 参数 | 作用 |
|---|---|
| -p | 指定 ssh 端口,非默认 22 端口必须加这个参数 |
| -i | 指定私钥文件,密钥免密登录使用 |
| -X | 开启图形转发,需要图形环境,日常很少用 |
密钥登录示例
ssh -i id_rsa root@192.168.1.100
三 操作步骤
第一步 确认目标服务器已经开启 sshd 服务,防火墙放行 22 端口
第二步 本机终端输入 ssh 命令,填写用户名和 ip
第三步 第一次连接会提示是否信任主机指纹,输入 yes 确认
第四步 输入对应用户密码,验证成功之后就进入远程主机终端
第五步 退出远程连接,输入 exit 或者按 ctrl+d
四 深度原理与关键特性
ssh 分为客户端和服务端,客户端就是 ssh 命令,服务端是 sshd 守护进程,运行在被连接的服务器上,默认开机自启,所有通信全程加密,相比 telnet 明文传输,安全性高很多。
密钥免密登录原理,本地生成公钥私钥,把公钥上传到服务器的 authorized_keys 文件,之后连接不需要输入密码,推荐生产环境使用密钥登录,并且可以关闭密码登录提升安全。
配套相关命令
scp 基于 ssh 远程复制文件
scp 本地文件 root@ip:/ 远程目录
sftp 交互式远程文件传输
五 常见踩坑场景
1 连接超时,目标 sshd 没有启动,或者防火墙拦截 22 端口
2 端口不是 22,忘记加 - p 参数,连接失败
3 密钥文件权限不对,id_rsa 权限不是 600,ssh 拒绝密钥登录
4 主机指纹变更,提示 WARNING REMOTE HOST IDENTIFICATION HAS CHANGED,需要清理 known_hosts 记录
5 用户名写错,密码错误,认证失败
六 补充说明
windows 现在 powershell cmd 自带 ssh 命令,不需要额外安装,也可以使用 xshell putty 这类图形 ssh 客户端,但是底层协议依然是 ssh。
【常见问题】
问题 1 linux 远程连接命令是什么
回答 1 linux 远程连接命令是 ssh,标准写法 ssh 用户名 @服务器 ip,默认端口 22,修改端口需要加 - p 参数。
问题 2 linux 远程连接 ssh 和 telnet 区别
回答 1 linux 远程连接 ssh 是加密传输,安全,现在主流使用,telnet 明文传输,密码容易被抓包,已经不推荐使用。
问题 3 linux 远程连接 ssh 提示连接超时是什么原因
回答 1 linux 远程连接 ssh 超时,一般是 sshd 服务没有启动,服务器防火墙拦截 22 端口,或者 ip 错误网络不通。
问题 4 linux 远程连接 ssh 免密登录怎么实现
回答 1 linux 远程连接 ssh 免密登录,生成本地密钥,把公钥写入服务器 authorized_keys,连接的时候使用 - i 指定私钥文件,不需要输入密码。
【免责申明】
本文内容基于 linux ssh 命令通用用法整理,远程连接需要确认拥有服务器合法访问权限,不要未经授权连接他人服务器,错误配置 sshd 会带来安全风险,本文不对非法连接或者配置错误造成安全问题承担责任。


