不灭的焱

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2017-10-26 13:09:28  修改时间:2023-02-01 10:52:19  分类:Linux软件安装/参数优化  编辑

scp语法

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2

DESCRIPTION :scp copies files between hosts on a network.  

任务目标

有如下2台Linux主机

主机A:192.168.1.1

主机B:192.168.1.2

用 主机A 上的用户 www,登录到 主机B(root用户,SSH端口改为了 2222

操作过程

1、配置 主机A

(1) 配置 主机A上 用户 www 的公钥:

cd /home/www
ssh-keygen -t rsa -C "java8642@163.com"

 

(2) 拷贝 主机A上 用户 www 的公钥到 主机B 上 用户 root 的家庭目录 /root 下:(注意:需要输入 root 用户密码)

参考:Linux scp 远程上传或下载 文件/文件夹

scp -P 2222 /home/www/.ssh/id_rsa.pub root@192.168.1.2:/root/

2、配置 主机B

(1) 追加上述拷贝过来的 公钥文本内容到 root 用户的 authorized_keys 文件中(注意:用 root 用户去操作)

cat /root/id_rsa.pub >> /root/.ssh/authorized_keys 

 

(2) 配置 sshd

vim /etc/ssh/sshd_config

去掉以下配置前的注释符 “#

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile      .ssh/authorized_keys

 

(3) 设置权限注意:这一步很重要,不然免密登录会失败

chown -R root:root  /root/*

chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

 

工作中的另一个操作备份:

chown -R www:www  /home/www/

chmod 700 /home/www/.ssh
chmod 600 /home/www/.ssh/authorized_keys

 

(4) 重启 sshd 服务

service sshd restart

注意:CentOS 7 重启sshd的命令为: CentOS 7 操作SSH/SSHD服务(查看/启动/重启/自启)

systemctl restart sshd.service

3、测试

在主机A 上 用 ssh 命令连接测试下,,,结果是:不用输入密码的

ssh -p 2222 root@192.168.1.2

即:当前 主机A 的登录用户 www,用 主机B 的用户 root 去登录 主机B,然后 用 主机B 的用户 root 去操作 主机B

 

顺便提一下:给 gogs (git项目管理系统) 账号配置公钥,其实是:

当前 主机A 的登录用户(如:www),用 主机B 的用户(如:gogs)去登录 主机B,
然后用 主机A 的登录用户(如:前面的提到的 www),去操作 主机A

 

延伸阅读:

SSH免密登录(本机)

 

 

参考:

  1. Linux下的 scp 拷贝命令详解
  2. Linux命令之 ssh 基本用法
  3. 菜鸟Linux系列:SSH免密码登陆远程服务器
  4. Linux使用ssh公钥实现免密码登录Linux
  5. Linux下实现免密码登录(超详细)