ssh 免密码登录 实现scp跨服务器拷贝文件

本文介绍如何配置SSH无密码登录及使用SCP命令进行安全的远程文件拷贝。通过生成RSA秘钥、设置.ssh目录权限和利用authorized_keys文件,实现服务器之间的无缝连接。同时,讲解了SCP命令的基本用法、参数选项及实际应用案例。
HOST baidu
hostName relay.baidu.cc
User webben
Port 22
PubkeyAuthentication yes
IdentityFile ~/.ssh/id_rsa

HOST baidu
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
ServerAliveInterval 80
SendEnv AUTHY_TOKEN


#!/usr/bin/expect
spawn ssh baidu
expect "Password:"
send  "your password\r"
interact


# 运行
ssh baidu

应用场景:需要从服务器A备份文件到服务器B
实现方法:


step1  在服务器A 上生成rsa 秘钥
       ssh-keygen -t rsa
       (注意:不要输入passphrase, 一直按enter就好了)
step2  将 ~/.ssh/id_rsa.pub scp到服务器A, scp时需要输入密码
 
step3  登录服务器A,将同步过来的id_rsa.pub中的内容复制到 ~/.ssh/authorized_keys
       cat id_rsa.pub >> ~/.ssh/authorized_keys
       复制后id_rsa.pub可删除掉
 
step4  确认效果,不输入密码实现远程ssh登录
       ssh max@[服务器A地址]
 
注意事项:
         1. 服务器A、B的账号名保持一样,比如都是max 
         2. 服务器A、B的 .ssh 目录权限权限不能太大,可以设置为 700
            chmod 700 ~/.ssh
         3. .ssh 目录下的文件权限也要进行限制,可设置为600
            chmod 600 ~/.ssh/*

1.命令格式:

scp [参数] [原路径] [目标路径]

2.命令功能:

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。

3.命令参数:

-1 强制scp命令使用协议ssh1

-2 强制scp命令使用协议ssh2

-4 强制scp命令只使用IPv4寻址

-6 强制scp命令只使用IPv6寻址

-B 使用批处理模式(传输过程中不询问传输口令或短语)

-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)

-p 保留原文件的修改时间,访问时间和访问权限。

-q 不显示传输进度条。

-r 递归复制整个目录。

-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。

-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。

-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。

-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。

-l limit 限定用户所能使用的带宽,以Kbit/s为单位。

-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,

-P port 注意是大写的P, port是指定数据传输用到的端口号

-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

4.使用实例:

scp命令的实际应用概述:

从本地服务器复制到远程服务器:

(1) 复制文件:

命令格式:

scp local_file remote_username@remote_ip:remote_folder  

或者

scp local_file remote_username@remote_ip:remote_file  

或者

scp local_file remote_ip:remote_folder  

或者

scp local_file remote_ip:remote_file  

第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名

第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名

(2) 复制目录:

命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder  

或者

scp -r local_folder remote_ip:remote_folder  

第1个指定了用户名,命令执行后需要输入用户密码;

第2个没有指定用户名,命令执行后需要输入用户名和密码;

从远程服务器复制到本地服务器:

从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。

实例1:从远处复制文件到本地目录

命令:

scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值