ssh免密登录

使用ssh登录远程 
ssh -p 2222 root@xx.xx.xx.xx 

但是每次都要输入密码 需要改为证书验证


第一步 本地生成证书  ssh keygen 什么命令

ssh-keygen -t rsa -b 2048 -C "这里是注释,随便填就行"

如果.ssh文件夹不存在,要自己创建(.开头的文件夹怎么创建自己度娘去)
最后生成一个 id_rsa  和id_rsa_pub的一个私钥 一个公钥 


第二步  把公钥放到服务器的 家目录下的 ~/.ssh/authorized_keys里面 
可以手动复制了,到服务器手动创建.ssh文件夹  authorized_key文件 然后使用vim编辑插入  记得要使用chmod 700 .ssh  chmod 600 authorized_keys 
也可以用下面的命令直接就能传过去 不用自己编辑

  描述:ssh-copy-id 是一个实用ssh去登陆到远程服务器的脚本。它也能够改变远程用户名的权限,
如~/.ssh和~/.ssh/authorized_keys 删除其写的权限,所以一般~/.ssh给予700,~/.ssh/authorized_keys 给予600权限。
也可以使用第三步的命令一键搞定 使用普通用户推送公钥的时候如果两边的用户不同,一定要带上用户,不能默认 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.10.221 这个命令就相当于把当前的公钥放到服务器 ~/.ssh/authorized_keys里面 不同用户 如果有改了ssh端口的要加上端口 ssh-copy-id -p 2222 -i ~/.ssh/id_rsa.pub wang@xx.xx.xx.xx
使用非22端口传输公钥
如果我们使用ssh-copy-id -p 58422 test@192.168.246.130进行公钥传输,则会出现如下报错信息:
ssh-copy-id使用及非默认22端口时报错
解决方法:
方法一:
[root@ceshiji .ssh]# ssh-copy-id "-p 58422 root@192.168.246.129"
方法二:
修改全局配置文件:
[root@ceshiji .ssh]# vim /etc/ssh/sshd_config
Port 58422
方法三:
[root@ceshiji ~]# vim ~/.ssh/config
加上内容:
Host server
Hostname ip
Port 58422
如果执行报错
Bad owner or permissions on /root/.ssh/config
则需要修改权限以符合安全策略
[root@ceshiji ~]# cd .ssh
[root@ceshiji .ssh]# chmod 700 .
[root@ceshiji .ssh]# ll -d
drwx------ 2 root root 4096 11月 30 12:38 .
最后,为了使用方便,推荐使用方法一!

  

  

原文地址:https://www.cnblogs.com/brady-wang/p/10795913.html