客户端:MacOSgit
服务端:CentOSwindows
其余系统操做相似。bash
1. 客户端生成密钥。服务器
ssh-keygen -t rsa -C "mac"
* -C 是注释的意思,若是你有多个密钥,价格注释比较好区分ssh
* windows系统可能没有ssh-keygen命令,装一个git-bash就行了post
2. 上述命令一直敲回车,会生成两个文件id_rsa,id_rsa.pub,前面是私钥,后面是公钥。rest
私钥放到本机~/.ssh目录下,改个名字:id_rsa_mac,方便之后增长其余密钥,在~/.ssh目录下新建config文件,内容以下:code
# 这里是注释 Host sample HostName 你的服务器地址 Port 你的ssh端口,默认22 User 登陆用户名 IdentityFile ~/.ssh/id_rsa_mac
3. 将上面的公钥id_rsa.pub打开,全文复制,而后到服务器上进行以下操做:(特别注意:你想免密码登录哪一个帐号,就在相应帐户的目录下进行操做,我以前一直失败就是这里没配好,网上的教程也不多提醒这个):blog
进入~/.ssh目录(若是没有则新建)教程
打开authorized_keys文件(没有则新建),在末尾粘贴id_rsa.pub的内容,保存。
.ssh目录访问权限设置为700,authorized_keys权限设置为644,owner都是当前帐户。
4. 编辑/etc/ssh/sshd_config文件,最后增长几行:
RSAAuthentication yes PubkeyAuthentication yes Port 你的ssh端口
5. 执行services sshd restart,重启sshd服务
如今,你就能够在客户端执行ssh sample直接登录这台服务器了!(若是仍是提示你输入密码,那么就是没有配置成功,请仔细检查前面的步骤)
想使用不一样帐户登录?太简单了,ssh user1@sample, ssh user2@sample,只要相应帐户目录下正确配置了authorized_keys,都没问题,开始High吧!