先说一下,mac 和linux 的设置方法是一样的
一般做法可以参照http://www.tuicool.com/articles/i6nyei
第一步:生成密钥。在终端下执行命令:
ssh-kegen -t rsa
一路回车,各种提示按默认不要改,等待执行完毕。然后执行:
ls ~/.ssh
#可以看到两个密钥文件:id_rsa(私钥) id_rsa.pub(公钥)
第二步:放置公钥到Linux服务器。使用scp命令:
scp ~/.ssh/id_rsa.pub cssor@cssor.com:/home/cssor/.ssh/
然后把id_rsa.pub的内容加入到服务器端的默认验证文件authorized_keys,执行:
#先登录到远程服务器 cd ~/.ssh cat -n id_rsa.pub > authorized_keys
第三步:配置本地ssh config文件。执行:(这部可有可无,加上之后以后登录就不用敲一长串服务器域名了,敲个别名就行了,建议加上)
vi ~/.ssh/config Host zhangsan #别名,域名缩写(注释记得删掉) HostName 192.168.100.100 #完整的域名 User zhangsan #登录该域名使用的账号名 IdentityFile ~/.ssh/id_rsa #私钥文件的路径
经过以上操作以后,已经大功告成,感谢一同事帮忙,虽然他用的是Ubuntu系统。
使用ssh zhangsan或ssh zhangsan@192.168.100.100就可以直接登录到远程服务器了
问题处理
如果按照上述方法操作了还是无法登陆,可先用密码登陆远程服务器然后输入命令:
用root用户登陆查看系统的日志文件:$tail /var/log/secure -n 20
会提示类似信息:
………… Oct 7 10:26:43 MasterServer sshd[2734]: Authentication refused: bad ownership or modes for file /home/zhangsan/.ssh/authorized_keys Oct 7 10:26:48 MasterServer sshd[2734]: Accepted password for zhangsan from ::1 port 37456 ssh2 Oct 7 10:26:48 MasterServer sshd[2734]: pam_unix(sshd:session): session opened for user zhangsan by (uid=0) Oct 7 10:36:30 MasterServer sshd[2809]: Accepted password for zhangsan from 192.168.1.241 port 36257 ssh2 Oct 7 10:36:30 MasterServer sshd[2809]: pam_unix(sshd:session): session opened for user zhangsan by (uid=0) Oct 7 10:38:28 MasterServer sshd[2857]: Authentication refused: bad ownership or modes for directory /home/zhangsan/.ssh
最新的日志啥意思呢? 就是说 /home/hadooper/.ssh 这个路径的文件夹权限不对
修改如下:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
如果不是这个.ssh 文件夹,而是用户目录,比如/home/zhangsan ,那就是你个整个文件夹的权限不对。(注:文件权限分两种 ownership or modes)
我的问题是,我的账号有root权限,我的登陆账号不是root,但是是我的文件夹的所有者的权限是root:root ,估计ssh识别不了,所以用下面的命令更改一下所
有文件夹的权限就可以了
chown -R zhangsan:zhangsan zhangsan/
至此我的问题解决了,如果你的日志中的错误信息是其他的,那就另行百度吧。 另注:我不是zhangsan