ssh 工具

  1. ssh 使用 rsa key 实现无密码访问

  server A 要用 rsa key 验证的方式访问 server B

  • 在A上创建/root/.ssh/目录

  > chmod -R 700 /root/.ssh/

  > cd /root/.ssh

  • 在A上生成密匙对rsa的密钥

  > ssh-keygen -t rsa

  会提示输入一个不同于你的password的密码(防止该私钥被盗用),直接回车,让它空着。当然,也可以输入一个。一直回车, 这样,密钥对就生成完了

其中公共密钥保存在 ~/.ssh/id_rsa.pub

  私有密钥保存在 ~/.ssh/id_rsa

之后把这个密钥对中的公共密钥复制到你要访问的机器上去,并保存为

~/.ssh/authorized_keys

  • 在B上修改 ssh 配置

  在 /etc/ssh/sshd_config 文件末尾添加

  RSAAuthentication yes
  PubkeyAuthentication yes
  AuthorizedKeysFile .ssh/authorized_keys

  重启B上的 ssh 服务

  之后在A上用ssh scp sftp 访问B时,就不用输入密码了

  • 验证

  ssh 192.168.162.33 date

 2. ssh远程登录不了

  远程登录不了无非下面几个原因:

  1) 用户名密码错误

  2) 端口没开或不是默认端口

  3) 不允许root用户远程登录

  4) 不允许以 用户名密码的方式 登录

  5) IP地址 被加入 hosts.deny

  6) 防火墙

 3. linux下ssh或scp出现 "RSA host key for has changed"

ssh 工具

  使用ssh远程登录或使用scp时出现rsa has changed 错误,这是Linux重装或者openssh-server重装引起的,执行以下命令即可

 ssh-keygen -R IP

  或者你删除个人目录下.ssh目录下的known_hosts文件中的此Ip对应的项

4. 对不同的主机使用不同的公钥

  当主机中有多个密钥对的情况下,可以通过设置 /etc/ssh/ssh_config中对不同的主机和用户使用不同的私钥文件。如下例:
  Host *    
  IdentityFile ~/.ssh/%r@%h

  只对远程主机10.11.70.25进行ssh连接时,使用的私钥文件为~/.ssh/id_dsa141

  Host 10.11.70.25
  IdentityFile ~/.ssh/id_dsa141
5. sshd等级后,启动服错

最近由于经常扫描到openssh漏洞,把sshd升级到7.2版本之后 ,重启服务的时候出现了错误提示如下:

ssh 工具

原因:openssh 从 7.0 后开始对于version 1.x 就不支持了,相应的RSA1算法也不再支持了,编译openssh源码的时候也不会在/etc/ssh目录下面生成ssh_host_key/ssh_host_key.pub了,因为没有在/etc/ssh下生成ssh_host_key/ssh_host_key.pub文件,导致脚本服务报错,那么可以到启动服务脚本/etc/init.d/sshd文件中删除 RSA1 相当内容

解决:删除 /etc/init.d/sshd 下面内容

ssh 工具

ssh 工具

ssh 工具

这样重启SSH服务就恢复正常了

上一篇:Mac安装软件报“打不开。。。,因为它来自身份不明的开发者”的解决办法


下一篇:MYSQL导入导出.sql文件