mac上ssh免密码输入登录服务器
上一篇文章写的如何在mac上登录服务器,但是每次都要输入服务器名字和密码,感觉特别麻烦,就搜了一下简单的方法,亲测有效。
第一步:简化登录命令行
既要达到这么一个效果,即:
ssh 100 <=等效于=> ssh username@192.168.1.100
ssh one <=等效于=> ssh username@domain_one.com
ssh two <=等效于=> ssh username@domain.com_two -p 222
如何设置呢?很简单,方法如下:修改~/.ssh/config (如果没有.ssh或者config,就新建一个)
test@ubuntu:~$ cd .ssh/
test@ubuntu:~/.ssh$ touch config
test@ubuntu:~/.ssh$ vim config
Host 100
HostName 192.168.1.100
Port 22
User username
Host one
HostName domain_one.com
Port 22
User username
Host two
HostName domain_two.com
Port 222
User username
保存后,输入:ssh 100 就可以等了服务器了,但是还是需要输入密码。
第二步:实现免密码登录
ssh常用公钥和私钥的方式实现免密码登录,在你安装ssh后,自带了一个ssh-genkey的工具生成公钥和私钥。
设置方法如下:
test@ubuntu:~$
test@ubuntu:~$ cd .ssh/
test@ubuntu:~/.ssh$
test@ubuntu:~/.ssh$ ls
config
test@ubuntu:~/.ssh$
test@ubuntu:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/yaolan/.ssh/id_rsa): id_rsa (输入保存的文件名称)
Enter passphrase (empty for no passphrase): (输入Enter键)
Enter same passphrase again: (输入Enter键)
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
14:b5:e4:73:1a:c7:95:d1:f4:86:3e:0c:6d:6e:cc:ef yaolan@VirtualBox
The key's randomart image is:
+--[ RSA 2048]----+
| ..o o=.|
| + o o..o|
| . = = + o|
| . * O . |
| S . O |
| . o |
| .|
| . |
| E|
+-----------------+
test@ubuntu:~/.ssh$ ls
config id_rsa id_rsa.pub
id_rsa私钥,id_rsa.pub公钥,采用RSA加密形式。我们只要把 id_rsa.pub改为 anthorized_keys并上传到服务器你的主目录下的.ssh下即可,
方法如下:
test@ubuntu:~/.ssh$ cp id_rsa.pub authorized_keys
test@ubuntu:~/.ssh$
test@ubuntu:~/.ssh$ ls
authorized_keys config id_rsa id_rsa.pub
test@ubuntu:~/.ssh$
test@ubuntu:~/.ssh$ scp authorized_keys username@192.168.1.100:~/.ssh
完成这步,我们就可以免密码等了
总结:做完第一步和第二步后,输入 ssh 100就可以直接登录服务器了。如下:
test@ubuntu:~$ ssh 100
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 4.2.0-35-generic x86_64)
- Documentation: https://help.ubuntu.com/
191 packages can be updated.
108 updates are security updates.
New release '16.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Last login: Tue Nov 1 14:44:36 2016 from 192.168.1.120
username@Server:~$
username@Server:~$
备注:私钥要保护好,注意它的权限。其他帐号在获取你的私钥后,可以通过你的帐号免密码等了服务器。
同样你可以把公钥上传到其他服务器,这样用同一个私钥就可以登录多台服务器了。
由于公司服务器账号设置了权限,本人无权限访问ssh文件夹,所以免密码登录无法验证。
还有一种方法就是:
打开终端,然后点击左上角shell--->新建远程链接---->选择安全Shell(ssh)---->右边添加+号--->然后输入服务器的ip地址---->在下面输入用户名--->点击连接,然后在终端输入密码即可,这一部免去了输入服务器IP地址的问题。
有时候链接服务器会出现这个错误:
20160403212616022.png
解决办法:
先cat一下家目录的.ssh/know_hosts
删除对应ip地址的的相关rsa的信息即可.(有时候ip地址太多,需要上滑才能找到)