mac sshpass mac ssh登录服务器
0
2026-03-25
通过和配置~/.ssh/config文件,可以远程服务器设置别名、端口、用户名及私钥路径,支持通配符简化配置通用参数,并利用ssh -v调试连接问题。

如果您需要在Mac上管理多个远程服务器的SSH连接,手动输入长串命令创建会降低效率。通过SSH配置文件,可以为每台服务器设置别名、端口、用户名等参数,实现一键。以下是创建和配置SSH config文件的具体步骤:一、SSH配置文件目录与文件
SSH客户端默认读取用户主目录下~/.ssh/config文件作为配置入口。该文件不时需要手动配置,且必须确保配置目录和文件权限安全,否则OpenSSH将拒绝加载。
1、打开终端,执行命令配置.ssh目录(若尚不存在):mkdir -p ~/.ssh
2、设置目录权限为700(仅所有者可读写执行):chmod 700 ~/.ssh
3、使用文本编辑器创建空白config文件:touch ~/.ssh/config
4、赋予config文件600权限(仅所有者可读写):chmod 600 ~/.ssh/config二、配置单台服务器的Host别名
每个服务器入口以Host关键字开头,后接自定义别名;后续参数如HostName、User、Port用于指定实际连接信息。该方式避免每次输入地址完整和参数。
1、用nano编辑器打开配置文件:nano ~/.ssh/config
2、在文件中内容内容以下输入(示例:为生产服务器设置别名prod):Host prod 主机名 192.168.1.100 用户 admin 端口 2222
3、按Ctrl+O保存,Ctrl+X退出nano编辑器。
4、验证配置是否生效:ssh prod(应直接连接至192.168.1.100:2222,以admin用户登录)三、配置多服务器并启用密钥认证
当管理多台服务器时,注意不同主机指定独立的私钥路径,避免密码输入重复,并提升安全性。IdentityFile参数明确指向私钥文件位置,需确保私钥权限为600。
1、确认私钥已存放于~/.ssh/目录下(例如id_rsa_prod、id_rsa_dev):ls -l ~/.ssh/id_rsa_*
2、编辑~/.ssh/config,追加开发服务器配置:Host dev HostName dev.example.com 用户开发者 Port 22 IdentityFile ~/.ssh/id_rsa_dev ClipDrop
Stability.AI出品的图片处理系列工具(后台移除、图片放大、打光)下载
3、同样追加测试服务器配置:主机测试 主机名 10.0.0.50 用户测试器 端口 22 IdentityFile ~/.ssh/id_rsa_test
4、测试连接:ssh dev 和 ssh test四、使用通配符简化通用参数配置
对于具有相同基础参数的多台服务器(如统一端口、统一用户),可利用Host通配符(*)或模式匹配(如test-*)定义全局或分组默认值,减少重复书写。
1、在config文件顶部添加通用配置块:Host * User defaultuser Port 22 ConnectTimeout 10 ServerAliveInterval 60
2、为特定远程服务器覆盖部分参数(如所有以“staging-”开头的主机):Host staging-* User deploy IdentityFile ~/.ssh/id_rsa_staging
3、创建一个匹配示例主机:Host staging-web01 HostName 172.16.0.21
4、连接时执行:ssh staging-web01(自动使用deploy用户及staging私钥)五、调试语法配置与连接问题
SSH配置文件对缩进、空格和大小写敏感。若连接失败,可借助ssh的-v参数逐级查看日志,确认是否加载配置及参数是否被正确解析。
1、检查config文件语法是否合法(无报错即表示格式基本正确):ssh -F ~/.ssh/config -G dummyhost 2>/dev/null | head -10
2、以配置详细模式连接某主机,观察是否被读取:ssh -v prod(查找输出中"正在读取配置数据"和"连接到"行)
3、若提示"错误的所有者或权限",立即运行:chmod 600 ~/.ssh/config && chmod 700 ~/.ssh
4、若提示"没有这样 Identity”,检查IdentityFile路径是否拼写正确且文件存在:ls -l ~/.ssh/id_rsa_prod