SSH免密码登录配置.md

在客户机生成私钥和公钥后,将公钥放在服务机,后续客户机通过ssh远程登录服务机时,将不再提示输入服务机登录密码,即可实现免密码登录。

  • 这种“公钥登录”方式,可用在服务器间,也可以用在个人电脑(mac\windows\linux),从而实现免密码远程登录服务器;
  • 而我之所以会用到,最主要原因是我们所有的服务器访问都是通过堡垒主机来完成的,实际上我们不会有服务器密码;
  • 比较坑的一点,堡垒主机不支持mac,所以只能乖乖打开虚拟机,通过windows访问堡垒机,效率是非常低;
  • 好在测试服务器22端口目前还未限制,我们可用这种方式配置,实现mac免密码登录服务器;
  • 以上其实不合公司规定( ̄Д  ̄)

Mac配置方式:

由于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 root@:/root/.ssh/

#####3. 登录到远程服务器

cd ~/.ssh
cat /root/.ssh/id_rsa.pub >> authorized_keys #将公钥内容加入到authorized_keys文件,没有则新建一个就行

#####4. 将authorized_keys更改权限

chmod 600  authorized_keys 

也可以在远程服务器上生成一对密钥,将公钥内容加入到authorized_keys文件并更改权限,将私钥拷贝到需要远程服务器的终端下

###SSH客户端使用配置

#####1. 将私钥文件文件放到~/.ssh目录中

vi ~/.ssh/config

#####2. 在文件中写入内容为

Host test_server    #别名,域名缩写
HostName test.com  #完整的域名,本地host解析至远程IP
User root   #登录该域名使用的账号名
PreferredAuthentications publickey   #有些情况或许需要加入此句,优先验证类型ssh
IdentityFile ~/.ssh/id_rsa  #私钥文件的路径

#####3. 客户端SSH登录远程服务器

ssh {Host}   # 登录刚才设置的别名服务器

#####4. 疑难问题

Permissions 0777 for ‘/Users/username/.ssh/id_rsa’ are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

chmod 600 ~/.ssh/id_rsa

猜你喜欢

转载自blog.csdn.net/cwp5757/article/details/83021321