由于mac os 是基于unix的操作系统终端和linux非常类似,所以不用借助类似于windows下的putty 和CRT工具即可远程登陆linux服务器,只需简单地3步即可免密码ssh远程。
1 :生成密钥。在mac终端下执行如下命令:
ssh-keygen -t rsa
默认都摁回车就行,不用做其他修改,执行完后会生成两个文件,一个公钥,一个私钥。
ls ~/.ssh
#id_rsa(私钥) id_rsa.pub(公钥)
2 :放置公钥到需要远程的服务器。
scp ~/.ssh/id_rsa.pub 用户@:/home/用户/.ssh/ ; 也可以拷贝到/root/.ssh 下
3 :登录到远程服务器
cd ~/.ssh
cat /用户根目录/.ssh/id_rsa.pub >> authorized_keys #将公钥内容加入到authorized_keys文件,没有则新建一个就行
另外用 Mac OSX Terminal ssh 命令连接服务器之后,如果一段时间不操作,就会退出登录并出现如下错误提示:
Write failed: Broken pipe
只能重新用 ssh 命令进行连接。
解决方法
方法一:$ ssh -o ServerAliveInterval=60 user@IP
方法二:只需在服务器的 /etc/ssh/sshd_config 中添加如下的配置:
添加或者修改ClientAliveInterval为“ClientAliveInterval 60”。这个参数的是意思是每1分钟,服务器向客户端发一个消息,用于保持连接。保存后记得重启ssh服务。