使用ssh公钥实现免密码登录

   

ssh 无密码登录要使用公钥与私钥。Linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。

有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。
首先以root账户登陆为例。

1.在A机下生成公钥/私钥对。

[root@A ~]# ssh-keygen -t rsa -P ''

-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
该命令将在/root/.ssh目录下面产生一对密钥id_rsa和id_rsa.pub。

一般采用的ssh的rsa密钥:
id_rsa     私钥
id_rsa.pub 公钥
下述命令产生不同类型的密钥
ssh-keygen -t dsa
ssh-keygen -t rsa
ssh-keygen -t rsa1

2.把A机下的/root/.ssh/id_rsa.pub 复制到B机的 /root/.ssh/authorized_keys文件里,先要在B机上创建好 /root/.ssh 这个目录,用scp复制。

[root@A ~]# scp /root/.ssh/id_rsa.pub root@192.168.1.181:/root/.ssh/authorized_keys
root@192.168.1.181's password:
id_rsa.pub                                    100%  223     0.2KB/s   00:00

由于还没有免密码登录的,所以要输入一次B机的root密码。

3.authorized_keys的权限要是600!!!

[root@B ~]# chmod 600 /root/.ssh/authorized_keys

4.A机登录B机。

[root@A ~]# ssh -l root 192.168.1.181
The authenticity of host '192.168.1.181 (192.168.1.181)' can't be established.
RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.181' (RSA) to the list of known hosts.
Last login: Thu Jul  3 09:53:18 2008 from root
[root@B ~]#

第一次登录是时要你输入yes。

现在A机可以无密码登录B机了。

小结:登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)

想让A,B机无密码互登录,那B机以上面同样的方式配置即可。

SSH-KeyGen 的用法

假设 A 为客户机器,B为目标机;

要达到的目的:
A机器ssh登录B机器无需输入密码;
加密方式选 rsa|dsa均可以,默认dsa

做法:
1、登录A机器
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;

ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.
具体方法如下:
ssh-keygen -t rsa
然后全部回车,采用默认值.

这样生成了一对密钥,存放在用户目录的~/.ssh下。
将公钥考到对方机器的用户目录下,并拷到~/.ssh/authorized_keys中。

要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞

注意 最后一定要在客户端和服务器 执行chmod -R 700 .ssh/ 否则配置是不成功的(每次登录都得重新去输入密码的)。

私钥文件的权限为什么不能设置为755

1、问题描述

在I.Mx6加载启动信息时输出如下内容

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for ‘/usr/local/openssh/etc/ssh_host_rsa_key‘ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /usr/local/openssh/etc/ssh_host_rsa_key
Could not load host key: /usr/local/openssh/etc/ssh_host_rsa_key

2、解决方法

设置私钥文件的权限为700,公钥文件(.pub文件)的权限为755

3、原因

在以NFS方式加载文件系统时,加文件系统中的所有文件改成777的权限。

而加载私钥文件时,若其权限为777则认为非法。

这是由于:基于“公私钥”认证的方式进行ssh登录的情况,会生成一对公私钥(公钥文件名类似x.pub,私钥文件名x)

然后公钥放在服务器上,自已保留私钥,当进行ssh登录,ssh程序会发送私钥到服务器与服务器上的公钥做匹配,匹配

成功方可登录。这里有一个安全问题,若私钥文件被别人盗取了怎么办?linux中通过强制设私钥文件的权限为700,这样

账号没盗取的情况下,私钥文件是不能被访问到的,实现了一定程度上的安全保证。

使用ssh公钥实现免密码登录相关推荐

  1. Ubuntu使用ssh公钥实现免密码登录

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以Ubuntu为例. 有机器A(10.0.2.1),B(10.0.2.100).现想A通过ssh免密 ...

  2. SSH基本原理和免密码登录

    SSH基本原理和免密码登录 SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协 ...

  3. SSH协议及免密码登录

    一.简述 SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露. 二.公钥加密 ( ...

  4. linux ssh 下实现免密码登录

    1.Linux下生成密钥 ssh-keygen的命令手册,通过"man ssh-keygen"命令: 通过命令"ssh-keygen -t rsa" 生成之后会 ...

  5. ubuntu 安装SSH并设置免密码登录

    cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost ssh-keygen -t rsa # 会有提示,都按回车就可以 cat ./id_rsa.pub >> . ...

  6. linux ssh公钥免密码登录

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 一.SSH公钥登录原理 在平时工作中我们经常要远程登录服务器,这就要用到SSH ...

  7. centos配置ssh免密码登录后仍要输入密码的解决方法

    From: https://blog.csdn.net/zwbill/article/details/80448939 前言 在搭建Linux集群服务的时候,主服务器需要启动从服务器的服务,如果通过手 ...

  8. Linux之间ssh免密码登录

    为什么80%的码农都做不了架构师?>>>    一.生成公私钥对 $ ssh-keygen -t rsa -P '' Generating public/private rsa ke ...

  9. 【SSH】SSH 免密码登录配置|Secure Shell 免密认证登录|linux 生成密钥

    目录 LINUX SSH免密登录 即看即用 详细说明 免密登录原理 Secure Shell 免密认证登录 linux 生成密钥 windows 生成密钥 目录 LINUX SSH免密登录 即看即用 ...

最新文章

  1. 发觉好像视力户籍变差么。。
  2. 共享windows目录给vm linux,将windows中的文件夹共享给Linux虚拟机
  3. php动态验证码脚本,这个PHP脚本有什么问题吗? (验证码)
  4. 即将上线的flume服务器面临的一系列填坑笔记
  5. eclipse下安装PyDev不显示问题
  6. 50个python库
  7. PHP生成日历(实例详解)
  8. Java面向对象(五)abstract --- 抽象
  9. SQL学习之使用视图
  10. C语言 printf 函数 - C语言零基础入门教程
  11. 使用Spring Boot Actuator 监控程序运行状态
  12. C#DataTable2Json(附时间格式化)
  13. 【thinkphp 5 在nginx 环境下路由无法生效(404 500错误 )的解决方法】
  14. 中国第一,全球领先的「浪潮」:用智慧计算征服的计算力天下
  15. 蒙特卡洛树搜索(MCTS)
  16. [转]Maxima笔记
  17. 课程需要:祝自己前程似锦
  18. codevs 4246
  19. 目录|Java3y最全目录(2019-6-13更新)
  20. spreadtrum展信平台加密Secure boot流程

热门文章

  1. 阅后即焚,火得一塌糊涂
  2. 唐朔飞《计算机组成原理》和袁春风《计算机组成与体系结构》中算数左移部分的差别
  3. C语言的成绩查询系统,C语言成绩查询系统.doc
  4. 带屏幕最高性价比的wifi芯片:BK7251支持搭载DJYOS操作系统
  5. think-pad 书签
  6. forlinx335x系统移植
  7. Chrom 常用插件
  8. MySQL学习--select查询
  9. springboot 分页
  10. 胜面试官半子,阿里SpringBoot全栈笔记首发,源码实战齐飞