一. 应用场景

假如你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. 开源搜索引擎Sphinx 中启动多个搜索进程的方法

    http://blog.163.com/yang_jianli/blog/static/1619900062010316504471/ 要在同一机器上启动多个sphinx搜索进程searchd,必须为 ...

  2. 懒加载 jquery代码

    懒加载代码.据说这是jquery代码. 说白了就是在 开始的时候调用,这个和C#代码错误处理机制是一样的. function check() {          var obj = document ...

  3. C#在声明对象时对其赋值的一种方式

    今天学会一种更方便的赋值方式,如下, 同时存档一个通过 打开对话框 获取地址的方式. private string GetSaveAsPathXls(string defaultFileName) { ...

  4. 小Z的创业经历 谢谢支持

    写这篇文章的目的是跟大家分享下创业的一些想法,经历.希望对你有所帮助或有所思考.  我想用6篇文章介绍下前期创业经历 1.怎么创业了? 2.万事开头难,怎么开始呢? 3.我们的系统详情(上) 4.我们 ...

  5. sharepoint 2013创建外部内容类型并创建外部列表

    步骤: 1.如何:基于 SQL Server 表创建外部内容类型 How to: Create an External Content Type Based on a SQL Server Table ...

  6. ABAP打开TCODE

    CALL FUNCTION 'TH_CREATE_MODE'  EXPORTING    transaktion    = 'ZGNBWD001'  EXCEPTIONS    max_session ...

  7. 【Xamarin开发 Android 系列 13】 应用打包部署

    原文:[Xamarin开发 Android 系列 13] 应用打包部署 开始倒叙咯................ 先更新大宝部署吧,这个章节比较的Easy,童鞋们不用费脑筋.点解?从界面上填写几个参 ...

  8. NavigationDrawer+Fragment实现侧滑菜单效果

    学习了NavigationDrawer 官方Support包中的SlidingMenu版本,练了下手.用到了ListView中item不同的布局 以后会升级加上ViewPager和GridView实现 ...

  9. [LeetCode#161] One Edit Distance

    Problem: Given two strings S and T, determine if they are both one edit distance apart. General Anal ...

  10. xcode duplicate symbol _GAD_MD5 解决方法

    添加了mobi的广告平台后,在Device状态打包时,出现此错误. duplicate symbol _GAD_MD5 in: 解决方法: Targets ->Build Setting  中设 ...