• scp免密码传送文件


    一、单向

    ssh-keygen -t rsa

    单向无密码访问远程服务器操作比较简单,比如服务器A需要无密码访问服务器B(A–>B),那么只需要在服务器A生成密钥对,将生成的公钥上传到服务器B的相关用户目录下的.ssh目录中(没有的话手动创建,注意,它的目录权限是700),并将公钥文件名称改为authorized_keys(注意,这个文件的权限应该是644),请注意.ssh目录及authorized_keys文件的权限,权限不符,会使配置无效。

    二、双向

    将本机的id_rsa.pub文件中的内容加到对方的authorized_keys文件中即可。


    三、遇到的问题

    有时候按步骤设置好了,ssh时仍然提示需要输入密码,此时可以用ssh ip -v 来跟踪,或者在文件/var/log/secure中查看对应的日志。

    例如我设置ssh无密码连接Route主机后,仍然提示输入密码,经过查看secure日志,发现如下信息:

    Mar 6 14:00:11 Route sshd[10353]: Authentication refused: bad ownership or modes for directory /home/tianyc
    Mar 6 14:01:06 Route sshd[10354]: Connection closed by 10.1.1.1
    Mar 6 14:01:42 Route su: pam_unix(su:session): session opened for user root by root(uid=201301)

    查看该目录权限,被设置成了777,修改为755后即正常:
    [root@Route /]# cd home/
    [root@Route home]# ll
    总用量 108
    drwxr-xr-x. 2 root root 4096 1月 21 23:52 lvs
    drwxrwxrwx. 6 tianyc NEU 4096 3月 6 10:57 tianyc
    drwx------. 3 wensong wensong 4096 1月 21 17:24 wensong
    [root@Route home]# chmod 755 tianyc
    [root@Route home]# ll
    总用量 108
    drwxr-xr-x. 2 root root 4096 1月 21 23:52 lvs
    drwxr-xr-x. 6 tianyc NEU 4096 3月 6 10:57 tianyc
    drwx------. 3 wensong wensong 4096 1月 21 17:24 wensong
    [root@Route home]# exit
    exit
    [tianyc@Route /]$ ssh route
    Last login: Wed Mar 6 11:14:29 2013 from route
    [tianyc@Route ~]$

    在Linux环境下,两台主机之间传输文件一般使用scp命令,通常用scp命令通过ssh获取对方linux主机文件的时候都需要输入密码确认。

    不过通过建立信任关系,可以实现不输入密码。

    这里假设A的IP:192.168.10.1

    B的IP:192.168.10.2

    需要从A免密码输入复制文件至B。


    1. 在主机A上执行如下命令来生成配对密钥: 
    ssh-keygen -t rsa 
    按照提示操作,注意,不要输入passphrase。提示信息如下 
    Generating public/private rsa key pair. 
    Enter file in which to save the key (/root/.ssh/id_rsa):  
    Enter passphrase (empty for no passphrase):  
    Enter same passphrase again:  
    Your identification has been saved in /root/.ssh/id_rsa. 
    Your public key has been saved in /root/.ssh/id_rsa.pub. 
    The key fingerprint is: 
    ff:8e:85:68:85:94:7c:2c:46:b1:e5:2d:41:5c:e8:9b  root@localhost.domain 

    2. 将 .ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为  authorized_keys。 
    scp .ssh/id_rsa.pub 192.168.10.2:/root/.ssh/authorized_keys 

    以后从A主机scp到B主机就不需要密码了。

    3.使用此方法需要注意:复制的两台计算机需要用相同的账户名,这里都是用的root。为了安全起见,需要在两台机器中创建相同的账号,然后在A上用su命令切换至账号下,执行第1步,第二步中复制文件时可能.ssh目录并不存在,需要手动创建。

    在第2步中如果机器中已经存在authorized_keys文件,则需注意,这个文件可以包含多个SSH验证信息,这时可用 cat >>命令将验证文件内容附加上去。

    比如复制到scp .ssh/id_rsa.pub 192.168.10.2:/root/.ssh/a.pub

    然后执行cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys

  • 相关阅读:
    LeetCode之“树”:Binary Tree Preorder && Inorder && Postorder Traversal
    LeetCode之“树”:Binary Tree Level Order Traversal && Binary Tree Level Order Traversal II
    LeetCode之“树”:Balanced Binary Tree
    LeetCode之“树”:Sum Root to Leaf Numbers
    LeetCode之“树”:Validate Binary Search Tree
    LeetCode之“树”:Path Sum && Path Sum II
    LeetCode之“树”:Symmetric Tree && Same Tree
    TCP中的MSS解读(转)
    IP协议详解(转)
    TCP 的那些事儿(上)(转)
  • 原文地址:https://www.cnblogs.com/peizhe123/p/5699052.html
Copyright © 2020-2023  润新知