一. 应用场景

假如你Linux Client是客户端, Server为服务器,用户名为user。现在要配置从Client到Server的无密码SSH登录或者无密码的scp拷贝。

例如客户端Client(10.1.10.125) 要 ssh 或者scp 到服务器Server(10.1.10.129),125端命令如下

ssh root@10.1.10.129

scp ** root@10.1.10.129 **

二. 实现方法

1:在Client(10.1.10.125)上执行ssh-keygen -t rsa命令,上产生一对密钥,需要输入的地方直接回车,接受缺省值即可,输出如下:

[user@Client .ssh]$ ssh-keygen -t rsa
Generating public/private dsa key pair.

Enter file in which to save the key (/home/user/.ssh/id_dsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
The key fingerprint is:
22:0c:2e:64:09:2e:a9:f1:37:c5:ee:d9:e5:57:92:b4 user@Client

这时候,在/home/user/.ssh(即10.1.10.125的~/.ssh)目录下,存有一对密钥id_dsa和id_dsa.pub。

2. 将公钥id_dsa.pub以任何方式上传到Server的~/.ssh目录下,并且文件名是authorized_keys

小注:如果Server的~/.ssh目录下有authorized_keys文件则需要追加上去,如果没有直接拷贝上去即可

拷贝命令如下:从125拷贝到129上,scp ~/.ssh/id_rsa.pub root@10.1.10.129:~/.ssh/authorized_keys

追加命令如下:在129上追加, ssh root@10.1.10.125 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3. 修改权限

客户端125上修改:   chmod 755 ~/.ssh

服务端129上修改:  chmod 600 ~/.ssh/authorized_keys

三、原理

使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释是

首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa) 然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥 当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了

 

客户端ssh-keygen -t rsa   会创建~/.ssh/id-ras.pub   id-ras

公钥:/root/.ssh/id-ras.pub

私钥:/root/.ssh/id-ras

chmod 755 /root/.ssh (可不做)

把公钥复制到需要访问的机器上 /.ssh/ 并改名保存为 authorized_keys ,

如果是多台客户端机器需要无密码登录服务器,则客户端机器各自产生公钥,然后将公钥追加到服务器的authorized_keys即可.

 
四。遇到的问题
 
配置过程中遇到如下问题: 修改私钥那台用700 公钥那台用755权限解决
 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0444 for '/root/.ssh/id_rsa' 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: /root/.ssh/id_rsa
root@10.1.0.75's password: 

 五.参考文章:

http://blog.chinaunix.net/uid-26557245-id-3403269.html

http://www.linuxidc.com/Linux/2011-02/31921.htm

http://xiang.lf.blog.163.com/blog/static/12773332220128142445324/

linux ssh scp无密码登录的更多相关文章

  1. 安装gitolite,并ssh公钥无密码登录

    安装gitolite,并ssh公钥无密码登录 gitolite是管理git版本库的一种方案,它将git版本库的管理信息放在了一个特殊git版本库里.gitolite与linux操作系统集成了,需要使用 ...

  2. Linux SSh scp使用【远程文件/目录的传输】

    一:Linux ssh scp的简介及作用: scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 有时我们 ...

  3. Linux SSH实现无密码远程登录

      一.      SSH无密码远程登录原理 二.      SSH实现无密码远程登录 实现主机A 无密码远程登录主机B 主机A   IP地址:10.8.9.154 主机B   IP地址:10.8.9 ...

  4. linux SSH免密码登录远程服务器

    背景:无密码登录,所谓的无密码登录其实是指通过证书认证的方式登录,使用一种‘公私钥’认证的方式来进行ssh登录 在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加 ...

  5. Linux SSH免密登录

    SSH无密码登录要使用公钥与私钥.Linux可以用ssh-keygen生成公钥/私钥对,下面以Ubuntu为例说明配置过程. 有两个节点:node01(172.17.0.14)和node02(172. ...

  6. [Linux] ssh免密码登录

    目标:本地机器ssh登录远程目标机器时不用输入密码 (默认状态下,ssh user@192.xxx.x.xxx需要输入密码) 原理:通过公钥和私钥实现系统认证 实现:把本地机器的公钥复制到目标机器 具 ...

  7. ssh设置无密码登录

    设置无密码登录此处设为有主机a登录到主机b 1.在主机a生成公钥 ssh-keygen -t rsa  之后有导航(其实一直回车就可以) 2.此时在主机a/home/YOURHOSTNAME/.ssh ...

  8. ssh配置无密码登录

    1.在master机器上生成公钥: [root@master ~]# ssh-keygen -t rsa    注:一直按enter键就可以生成了 Generating public/private ...

  9. SSH(安全协议外壳)介绍及Linux SSH免密登录

    SSH(安全外壳协议) SSH 为 Secure Shell 的缩写,是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议.通过使用 SSH,可以把传输的数据进行加密,有效防止远程管理过 ...

随机推荐

  1. Google v8 - Hello world

    OS:Window 7 1.下载v8 zip:https://github.com/v8/v8,解压zip,重命名v8-master文件夹为v8. 2.下载安装svn:http://tortoises ...

  2. SWD模式和JTAG模式

    一.功能 SWD模式:仿真 下载 JTAG模式:仿真 下载 二.接口 1.J-link JTAG/SWD接口 2.开发板接口电路 ①SWD模式 4根线(包片机) ②JTAG模式 20脚JTAG(网络) ...

  3. 前后端差异更小了——浅谈ES(ECMAScript)6

    2015年6月,ES6正式发布.至今一年多的时间内,各个浏览器也对支持ES6做出了很大的改善,所以同学们无需顾忌你写代码的浏览器不认识~ 这么久的东西一定早有大神剖析过,今天我们以一个后端菜鸟的视角重 ...

  4. c/c++ 传统数组的缺点

    专题:  动态内存分配 (所有高级语言,没有C里深刻) 传统数组的缺点: 1.数组长度必须事先指定,而且只能是常整数,不能是变量     例子 ]; //必须事先指定,而且只能是常整数 ; int a ...

  5. 矩阵分解(rank decomposition)文章代码汇总

    矩阵分解(rank decomposition)文章代码汇总 矩阵分解(rank decomposition) 本文收集了现有矩阵分解的几乎所有算法和应用,原文链接:https://sites.goo ...

  6. XSS与字符编码的那些事儿

    目录 0x00:基本介绍 0x01:html实体编码 0x02:新增的实体编码 实体编码变异以及浏览器的某些工作原理! 0x03:javascript编码 0x04:base64编码 0x05:闲扯 ...

  7. ArrayList与LinkedList实现比较

    1.ArrayList实现是基于数组来实现的,这可由ArrayList的源码看出: public class ArrayList<E> extends AbstractList<E& ...

  8. POJ 2892 Tunnel Warfare || HDU 1540(树状数组+二分 || 线段树的单点更新+区间查询)

    点我看题目 题意 :N个村子连成一条线,相邻的村子都有直接的地道进行相连,不相连的都由地道间接相连,三个命令,D x,表示x村庄被摧毁,R  ,表示最后被摧毁的村庄已经重建了,Q x表示,与x直接或间 ...

  9. 【POJ 2152】 Fire (树形DP)

    Fire   Description Country Z has N cities, which are numbered from 1 to N. Cities are connected by h ...

  10. *string++优先级的问题

    这个东西困扰了我几天,关于优先级问题确实是个恼人的东西,为了这个专门翻了C语言课本,得知 所有一目运算符都是第二级优先级 结合性是从右到左 那么*string++应该就是*(string++),也就是 ...