一. 应用场景

假如你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. WPF窗体禁用最大化按钮

    禁用WPF窗体的最大化按钮可以使用Windows API改变按钮状态的方法实现.使用GetWindowLong可以得到当前按钮的状态.使用SetWindowLong可以设置按钮的状态.使用SetWin ...

  2. 编程范式感想(一)——在C中进行对模板功能的实现

    最近一直在看网易公开课上的编程范式的公开课,斯坦福的教授讲的真的非常到位,感觉还是要好好学习下C还有汇编,熟悉下计算机的内存机制什么的. 大家都知道关于模板或者说范式的问题,基本在很多高级语言上都有实 ...

  3. Consistent Hashing原理与实现

    原理介绍: consistent hashing原理介绍来自博客:http://blog.csdn.net/sparkliang/article/details/5279393, 多谢博主的分享 co ...

  4. STM32的GPIO

    一.I/O端口位的基本结构 二.端口位配置表 参考:STM32芯片参考手册

  5. CocoaPods简单使用

    CocoaPods的原理 CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中.Pods项目最终会编 ...

  6. Jquery效果代码--(二)

    //jQuery 效果- 隐藏和显示.通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: //掩藏效果演示: $(document).ready(fun ...

  7. 形形色色Node工程Angular2

    最近项目要用的 一些无关紧要的文件夹, demo是一些示例, dist是webpack打包后发布的代码,server是用node启动服务,typings和tsconfig是一些ts配置. npm in ...

  8. JAVA 反序列化攻击

    Java 反序列化攻击漏洞由 FoxGlove 的最近的一篇博文爆出,该漏洞可以被黑客利用向服务器上传恶意脚本,或者远程执行命令. 由于目前发现该漏洞存在于 Apache commons-collec ...

  9. 创建基于文件组的数据库SQL救命语句

    CREATE DATABASE Sales ON PRIMARY (NAME = SPri1_dat, FILENAME = 'D:\SQLDB\SPri1dat.mdf', SIZE , MAXSI ...

  10. PHP 判断从表单提交的值是否为空

    @$time = $_GET['time'];if(empty($time)) { echo "empty";} else { echo "not empty" ...