帮助中心 >
  关于网络安全 >
  Mac上使用Terminal远程连接服务器的方法
Mac上使用Terminal远程连接服务器的方法
时间 : 2025-03-27 14:54:41
编辑 : Jtti

学会掌握高效远程连接方法有利于提升生产力,特别是对于开发者/系统管理者而言,使用max的Terminal连接远程服务器是日常工作的基础技能。在部署代码、管理云端资源或者调试中都会应用到。本文主要讲述了SSH协议核心机制及如何在mac终端上构建稳定安全的远程工作环境。

一、SSH基础:密码认证连接

SSH(Secure Shell)是一种加密的网络协议,专为远程登录和文件传输设计。Mac系统已内置OpenSSH客户端,无需额外安装即可使用。

基础连接命令

Terminal(位于“应用程序/实用工具”目录),输入以下命令:

ssh username@server_ip

username:远程服务器的登录用户名(如root、ubuntu等)

server_ip:服务器的IP地址或域名(如203.0.113.10或example.com)

示例:  

ssh admin@203.0.113.10

系统将提示输入密码,输入时不会有字符回显(不显示输入内容),完成后按回车即可登录。

指定端口连接。若服务器SSH端口不是默认的22,需通过p参数指定:

ssh p 2222 user@example.com

连接过程分析。首次连接时会弹出主机指纹验证提示:

The authenticity of host '203.0.113.10 (203.0.113.10)' can't be established.
ECDSA key fingerprint is SHA256:Abc123...xyz.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

输入yes后,服务器公钥会被保存到~/.ssh/known_hosts,后续连接将跳过此验证。

二、密钥认证:告别密码输入

密码认证存在被破解的风险,SSH密钥认证通过非对称加密实现更安全的登录方式。

生成密钥对。在Terminal执行:

sshkeygen t ed25519 C "your_email@example.com"

t ed25519:指定使用更安全高效的Ed25519算法(兼容性要求高时可改用t rsa b 4096)

C:添加注释(通常为邮箱)

按提示选择密钥保存路径(默认~/.ssh/id_ed25519)和密码(可选)。生成的两个文件:

私钥:id_ed25519(必须严格保密)

公钥:id_ed25519.pub(需上传至服务器)

上传公钥到服务器。使用sshcopyid工具自动部署:

sshcopyid i ~/.ssh/id_ed25519.pub user@example.com

输入密码后,公钥会被追加到服务器的~/.ssh/authorized_keys文件。

密钥连接验证。再次登录时,若配置正确将直接进入服务器,或提示输入密钥密码(如果生成时设置了密码)。

三、配置文件优化:告别重复参数

通过~/.ssh/config文件预设连接参数,简化命令输入。

创建配置文件

nano ~/.ssh/config

添加服务器配置

Host myserver                   自定义别名
HostName example.com        服务器地址
User ubuntu                 用户名
Port 2222                   端口
IdentityFile ~/.ssh/id_ed25519   私钥路径
ServerAliveInterval 60      每60秒发送保活信号

配置完成后,只需输入:

ssh myserver

四、高级技巧:提升效率与安全

文件传输SCP命令,上传文件:  

scp P 2222 local_file.txt user@example.com:/remote/directory

下载文件:  

scp P 2222 user@example.com:/remote/file.txt ~/Downloads

Rsync同步(增量传输):  

rsync avz e "ssh p 2222" ~/project/ user@example.com:/var/www/

端口转发。本地端口转发(访问远程内网服务):  

ssh L 8080:localhost:80 user@example.com

访问http://localhost:8080即可映射到服务器的80端口。

动态SOCKS代理:  

ssh D 1080 user@example.com

配置浏览器使用localhost:1080作为SOCKS代理。

会话持久化。使用tmux或screen防止网络中断导致任务终止:

tmux new s mysession

运行任务后按Ctrl+B D分离会话

tmux attach t mysession

多因素认证(MFA)增强安全性,需在服务器端配置。安装Google Authenticator:

sudo apt install libpamgoogleauthenticator

执行初始化:

googleauthenticator

修改SSH配置:

/etc/ssh/sshd_config
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboardinteractive

五、故障排除:常见问题与解决方案

连接超时检查网络:  

ping example.com
traceroute example.com

验证端口开放:  

nc zv example.com 22

权限错误,密钥文件权限:  

chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

服务器authorized_keys权限:  

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

主机密钥变更警告。若出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!,说明服务器密钥变更(可能遭遇中间人攻击)。确认安全后删除旧记录:

sshkeygen R example.com

六、安全最佳实践

禁用密码登录。服务器端修改/etc/ssh/sshd_config:

PasswordAuthentication no

限制用户登录:  

AllowUsers ubuntu admin
DenyUsers root

定期轮换密钥,每36个月生成新密钥对,并更新服务器授权列表。

日志监控,使用journalctl u ssh或grep 'sshd' /var/log/auth.log检查登录尝试。

以上就是关于Mac Terminal配合SSH协议完成日常维护或复杂内网穿透分享,应用Terminal企业可以更轻松的开启远程服务器探索之旅。

JTTI-Defl
JTTI-Ellis
JTTI-Eom
JTTI-COCO
JTTI-Selina