SSH免密

说明

  • SSH客户端使用配置

SSH客户端 生成密钥

ssh-keygen -t rsa -b 4096 -C "[email protected]"

建议输入密钥名,便于管理类似 my_rsa
同时会输入密钥的密码 2次,不建议使用弱密码,本人记忆一次就行,也可以用生成器生成
生成的密钥对my_rsamy_rsa.pub,默认存储在 ~/.ssh 目录,其中没有后缀的是私有,有后缀 .pub 的为公钥

在linux/mac中可以直接使用pem格式的证书:例如远程登录linux主机:ssh -i xx.pem xxx@host
但是在windows就不方便了, 请将pem格式转成ppk格式,然后利用Putty登录

SSH服务端配置

my_rsa.pub的内容复制到服务器的 ~/.ssh/authorized_keys 中,如果存在文件authorized_keys,就在这个文件的末尾加上这次生成的公钥内容

# 进入存放ssh配置的目录查看authorized_keys文件
cd ~/.ssh
ls 

# 存在authorized_keys这个文件
cat -n ~/.ssh/my_rsa.pub ~/.ssh/authorized_keys

# 没有authorized_keys这个文件
cp ~/.ssh/my_rsa.pub ~/.ssh/authorized_keys

必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH是不会工作的。


chmod 644 ~/.ssh/authorized_keys

公钥要放在登录服务器所用的账号的用户目录下,

比如你用帐户demo登录远程服务器,就要把公钥 放到 /home/demo/.ssh/下, authorized_keys文件也是在这个目录下

SSH客户端使用配置

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

vi ~/.ssh/config

在文件中写入内容为

Host server  #别名,域名缩写
  HostName sever.com  #完整的域名
  User username  #登录该域名使用的账号名
  IdentityFile ~/.ssh/my_rsa #私钥文件的路径

其中#号后面的内容去掉server sever.com username 等换成你的服务器信息,保存后就可以使用了

如果不知道 username ,去服务端执行命令 whoami 就可以获得配置时的账号名,如果是别人给的就得再问一次用户名

多组服务器类似,符合YAML结构就行,设置在 ~/.ssh/config

SSH客户端 登录Linux服务器

ssh登录了方法为

# 登录刚才设置的别名服务器
ssh server
# 测试是否配置正确 -p 自定义端口
ssh -T server -p 22
# 打印测试配置详情
ssh -Tv server -p 22

第一次登录会让你是否记入这次认证,确认记住后,以后就可以直接 ssh+别名 登录了

查看sshkey公钥信息

# 查看公钥 pubKeyPath 的指纹信息
ssh-keygen -l -f [pubKeyPath]

Error

ssh key Key is invalid

密钥错误,或者配置错误

github ssh key Key is invalid. Ensure you've copied the file correctly

此错误出现原因是:在github上添加新key时,不正确到拷贝了 ~/.ssh/id_rsa.pub 内容所致。一般发生在linux下,因为windows下用notepa++打开这个文件并复制一般是没有问题的,而linux下使用vim打开再复制就会因为vim添加了回车而导致key添加失败。

解决办法是:使用cat命令将 .ssh/id_rsa.pub 内容输出到终端,再拷贝。

Permissions 0644 for '..' are too open

因为密钥的权限太高导致的

把权限降到0600就ok了

chmod 0600 [you client private key]


/data/docker/speaker
转载:https://www.jianshu.com/p/1fdcd9d9cb2f

猜你喜欢

转载自blog.csdn.net/jiuweiC/article/details/83582708
今日推荐