ssh-keygen 免密码远程连接

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a0405221/article/details/78390292

ssh除了使用密码验证外,还提供了一种公私密钥的验证方式。客户端生成一个私钥,并生成一个与之对应的公钥,然后将公钥上传到服务器上

1、本地机器创建公钥

ssh-keygen -t rsa -C  'your email'

然后一路回车,生成你自己的密钥

2、将公钥复制到ssh服务器

mkdir .ssh  #若.ssh目录已存在,可省略此步

mac:将前一步骤生成的公钥~/id_rsa.pub文件,复制到ssh服务器对应用户下的~/.ssh/authorized_keys文件,可以有多种方式,这里只介绍常用的一种

brew install ssh-copy-id
ssh-copy-id username@hostname  #将username和hostname替换为你的ssh服务器用户名和IP
cat id_rsa.pub >> .ssh/authorized_keys  #将公钥文件id_rsa.pub文件内容追加到authorized_keys文件
 

通用:

scp ~/.ssh/id_rsa.pub username@hostname:~/ #将公钥文件复制至ssh服务器
ssh username@hostname #使用用户名和密码方式登录至ssh服务器
 
cat id_rsa.pub >> .ssh/authorized_keys  #将公钥文件id_rsa.pub文件内容追加到authorized_keys文件
 

此时,已经可以用ssh username@hostname 登录了

3、使用ssh name登录

在本地客户端

vim ~/.ssh/config

然后在终端输入 i 开始插入如下内容:

Host                  name#自定义别名
HostName              hostname  #替换为你的ssh服务器ip或domain
Port                  22 #ssh服务器端口,默认为22
User                  root #ssh服务器用户名
IdentityFile          ~/.ssh/id_rsa #第一个步骤生成的公钥文件对应的私钥文件

按下ESC,然后依次输入 :wq
保存并退出

最终,我们只需要在终端输入

ssh name

猜你喜欢

转载自blog.csdn.net/a0405221/article/details/78390292