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 # 或 ssh-keygen -t rsa -C "java8642@163.com"
(2) 拷贝 主机A上 用户 www 的公钥到 主机B 上 用户 root 的家庭目录 /root 下:(注意:需要输入 root 用户密码)
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
延伸阅读:
参考: