[root@localhost learngit]# ssh
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port]
[-Q cipher | cipher-auth | mac | kex | key]
[-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] [user@]hostname [command]
如果是用对方服务器的秘钥登录,那么需要在本地指定秘钥文件,无需输入密码
# ssh -p XXX -i/path/to/id_rsa root192.168.1.104 使用默认端口
# ssh -p XXX -i /path/to/id_rsa root192.168.1.104 使用指定端口
注:
/path/to/id_rsa 表示的是到id_rsa 这个文件的绝对路径
id_rsa 权限要求为:-rw------- 600
[root@localhost learngit]# scp
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2
scp 拷文件夹 、文件夹下的所有文件、 对拷文件并重命名
对拷文件夹 (包括文件夹本身)
scp -r /abc root@192.168.1.65:/opt
注: -r recursion递归
对拷文件夹下所有文件 (不包括文件夹本身)
scp /abc/* root@192.168.1.65:/opt
对拷文件并重命名
scp /abc/a.txt root@192.168.1.65:/opt/b.txt
//将本机的 /abc下的 a.txt 拷贝到 192.168.1.65的/opt/,重新命名为 b.txt。
注:如果目标目录下有同名文件,会被覆盖!
IP 后面不接路径,默认会拷贝到对应IP服务器,对应用户的家目录
scp -r abc/ root@192.168.1.104
scp -r abc/ root@192.168.1.104:/root
将 abc 目录及其文件拷贝至于 192.168.1.104 的 /root 目录下 ,显示为 /root/abc
scp -r abc/ root@192.168.1.104:root
将 abc目录及其文件拷贝至于 192.168.1.104 的 root用户的家目录 /root 下,并被重命名为root ,显示为 /root/root
对拷目录并重命名
scp -r abc/ root@192.168.1.104:root 相当于 scp -r abc/ root@192.168.1.104:~/XXX
注:如果目标目录下没有XXX目录,那么拷贝过来的 abc会被改名为XXX
Linux下scp的用法
scp就是secure copy(安全拷贝),一个在linux下用来进行远程拷贝文件的命令。
有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的。
一、将本机文件复制到远程服务器上
scp /abc/a.txt root@192.168.1.65:/opt/
/abc/a.txt本地文件的绝对路径
a.txt要复制到服务器上的本地文件
root 通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
192.168.6.129 远程服务器的ip地址(也可以使用域名或机器名)
/opt/ 将本地文件复制到位于远程服务器上的路径
通过root用户登录远程服务器,输入yes表示同意建立ssh连接
按提示输入root用户的密码
如图所示建立连接后开始传输文件,显示百分比、实际时间和传送速度等信息
二、将远程服务器上的文件复制到本机
# scp remote_user@www.abc.com:/usr/local/sin.sh /home/administrator
# scp remote_user@xx.xx.xx.xx:/usr/local/sin.sh /home/administrator
remote _user 通过remote用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
www.abc.com 远程服务器的域名(当然也可以使用该服务器ip地址)
/usr/local/sin.sh 欲复制到本机的位于远程服务器上的文件
/home/administrator 将远程文件复制到本地的绝对路径
注意两点:
1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:
# scp -P 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。
Linux区分大小写,windows相反。
同样的端口号参数。在scp和ssh命令中的使用,却不同。
在scp命令中,需要大写。
# scp -P XXX /abc root@192.168.1.65:/opt
在ssh命令中,却是小写。
# ssh -p XXX root@58.213.14.170
默认 ssh scp 使用22端口,无需指定,如果我们修改了 默认端口,那么相应地使用时需要指定!
# vim /etc/ssh/sshd_config
# ssh -p 2222 root@ 58.213.14.170
# scp -P 2222 /abc root@58.213.14.170:/opt
注:此处端口值得是对方服务器sshd的监听端口