SSH设置无密码登录服务器

首先给大家推荐一下我老师大神的人工智能教学网站。教学不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵黄段子!点这里可以跳转到网站

我们在做开发的时候,经常需要在本地去登录我们自己的服务器,我们老大给的密码太复杂了,我每次登录都比较要去找我记录的密码,在复制粘贴过来,后来我在找了一下不需要本第登录服务器不需要密码的方法,设置了一下,就可以免密码登录了,记录下,仅做参考。

本地端-MAC版:

#进入用户的目录下cd ~/   #查看是否有.ssh的目录,如果有,进行下一步,没有则执行命令创建mkdir .ssh  #进入.ssh目录cd .ssh  #把分组和其他用户的读、写、执行权限去掉,确保读、写、执行权限只限当前用户chmod go-rwx .ssh  #创建你的私钥和公钥,最后的“”,是代表私钥不需要密码,这就是为什么可以免密码登录ssh-keygen -b 1024 -t rsa -f id_rsa -P ""  #进入.ssh目录就可以查看文件了cd .ssh  ls -la

结果如下:

本地端—windows版:

1.在用户主目录下(一般为C:\Users\your username),看看有没有.ssh目录;
2.如果有,再看看这个目录下有没有id_rsa和id_rsa.pub;
3.这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

ssh-keygen -b 1024 -t rsa -f id_rsa -P "" 

4.进入.ssh目录就可以查看文件是否生成了;

注:id_rsa 是私钥  id_rsa.pub 是公钥

服务器端:

#登录之后,进入目录cd ~/ #查看是否有.ssh的目录,如果有,进行下一步,没有则执行命令创建mkdir .ssh  #在.ssh目录下创建authorized_keys文件touch authorized_keys #查看客户端的id_rsa.pubcat id_rsa.pub

结果如下:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTN8zeJh/jjKqezPw4int3HtPAw+WJ48JLTUPiUZrqPANMpzWbqLmwoqT3bQS2/BMvx0OetsYHJKogLarMTKPF7cAMAwV+5NKpUDxuKYxjBLbWBBZdEbml1MzzWiYRT/gGyosYBd8wiDaYMME2Fo9x5xEaEEKvp8dvT8YW/VXNO5ZvvHUF5+w4IDXY+kruroOdp/KZVvZEefbqVb5y1Y1P5iB9vKq1qy1DDc1rso3KaNsxSRMgMUm5HZWFI6+AKrO+0URbeFLdeAZAm8XfQ0ZYlNoo/ksuNA77guSj5X9dlzjHl1m2e0pePkXuc5DtKJ63FyJ7Md3wUh81rO6SQ5xTE4BV5+gZYDYLnRm0aOQwEq3kow== username@yourcomputer.local

#把内容复制到authorized_keys即可vi authorized_keys

注:如果authorized_keys没有写权限,这加上:chmod u+w authorized_keys 复制保存之后,记得把权限去掉:chmod u-w authorized_keys

以上的步骤完成之后,你就可以在本地无需密码的登录服务器了,因为你的服务器已经有了你的本地电脑的公钥,只有你本地的私钥才可以解密,所以不用密码也是安全的。

你就可以这样登录了:

第一种:

ssh user@domain.com 即可。

第二种:(这种方式就是给一个长一点的命令去一个别名,执行起来简单点)

#进入.bash_profilecd ~/vi .bash_profile #给你要执行的文件取一个别名-serverstartalias serverstart='ssh user@domain.com' #重新加载一下.bash_profile这个文件source ~/.bash_profile #执行别名就可以了serverstart

点这里可以跳转到人工智能网站

发表评论