使用ssh客户端远程登录到指定的计算机:python
$ ssh {user}@{remote} -o IdentityFile=/home/id_rsa -o StrictHostKeyChecking=no user:远程机器上的用户名,若是不指定的话默认为当前用户; remote:远程机器的地址,能够是 IP/域名,或者是 后面会提到的别名; port:ssh Server **的端口,SSH服务器默认端口号是 22,不指定则使用默认端口号。
在工做中,SSH服务器的端口号颇有可能不是22,若是遇到这种状况就须要使用 -p 选项,指定正确的端口号,不然没法正常链接到服务器。linux
ssh无密码登录要使用公钥和私钥。linux下能够用ssh-keygen生成公钥/私钥对。算法
$ ssh-keygen -t rsa -P ''
直接ssh-keygen而后三次回车就能够了。会在/home/root(用户) 下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。
-P表示密码;-P '':表示空密码,这种状况能够不使用-P参数。windows
把客户端机器生成的id_rsa.pub公钥复制到服务器的 /home/root(用户)/.ssh/authorized_keys文件中。centos
$ scp .ssh/id_rsa.pub hqs@192.168.2.77:/home/hqs/.ssh/id_rsa.pub # 把复制的id_rsa.pub添加到.ssh/authorized_keys文件 $ cat id_rsa.pub >> .ssh/authorized_keys $ chmod 600 .ssh/authorized_keys # authorized_keys的权限要为600
使用 公钥 加密的数据,须要使用 私钥 解密;
使用 私钥 加密的数据,须要使用 公钥 解密。服务器
执行 ssh-copy-id -p port user@remotessh
配置别名可让咱们进一步偷懒,好比:ssh centos来替代上面这一长串命令,在客户端计算机 ~/.ssh/config 里面追加一下内容:ide
Host centos
HostName 服务器ip地址
User python
Port 22
保存后,可使用ssh centos实现远程登录,scp一样可使用。工具
$ ssh {user}@remoteaddr -o IdentityFile=/home/{user}/.ssh/id_rsa -o StrictHostKeyChecking=no
scp 就是 secure copy,是一个 Linux 下用来进行 远程拷贝文件 的命令。既能够将本地内容拷贝到远程计算机,也能够将远程计算机内容拷贝到本地。加密
$ scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 -r:若给出的源文件是目录文件,则scp将递归复制该目录下的全部子目录和文件,目标文件必须为一个目录名; -P:若远程SSH服务器的端口不是22,须要使用大写字母 -P 选项指定端口。 -i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。 # 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py $ scp -P port 01.py user@remote:Desktop/01.py # 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py $ scp -P port user@remote:Desktop/01.py 01.py # 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop $ scp -r demo user@remote:Desktop # 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹 $ scp -r user@remote:Desktop demo # 指定RSA秘钥 # 下载数据 $ scp -i ~/.ssh/id_rsa -r root@remote_ip:/data/www/develop/develop_activity_task /data/www/activity_task_bak # 上传数据 $ [root@localhost fsp]# scp -i /home/id_rsa patch.zip fsp@172.28.0.2:/home/fsp/ Authorized users only. All activities may be monitored and reported. patch.zip
注意:
scp 这个终端命令只能在 Linux 或者 UNIX 系统下使用;
若是在windows系统中,能够安装putty,使用pscp命令行工具或者安装FileZilla使用FTP进行文件传输。