在我们部署项目的时候,需要将本地的项目部署于远程服务器上,(腾讯云,公司内网云,等等),那么经常使用的方法就是通过ssh来进行文件传输
什么是ssh协议:
SSH 为 Secure Shell 的缩写,即安全外壳协议,SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
如何配置ssh:
这里我们使用的工具是openssh-server,OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现,我使用的主机是ubuntu,所以以下的命令均是在ubuntu下进行。
首先安装openssh-server:
root@ubuntu:~# apt-get install openssh-server
若出现关于openssh-client依赖包问题,请看我另外一篇文章:
若安装成功则提示:
root@ubuntu:~# Setting up ssh-import-id (5.5-0ubuntu1) ...
root@ubuntu:~# Processing triggers for systemd (229-4ubuntu7) ...
root@ubuntu:~# Processing triggers for ureadahead (0.100.0-19) ...
root@ubuntu:~# Processing triggers for ufw (0.35-0ubuntu2) ...
检查ssh服务是否启动:
root@ubuntu:~# ps -e | grep ssh
root@ubuntu:~# 9050 ? 00:00:00 sshd
ssh服务此时已经启动,接着修改配置文件:
root@ubuntu:~# gedit /etc/ssh/sshd_config
将该文件中:
PermitRootLogin prohibit-password
注释掉,变为
#PermitRootLogin prohibit-password
然后添加:
PermitRootLogin yes
StrictHostChecking no
UserKnownHostsFile /dev/null
若不加这些配置,当你登录的时候会出现这种错误:
the authenticity of host xxx can't be established
保存退出,完成配置
使用ssh传输文件:
1.登录远程服务器:
ssh username@目标ip
2.上传下载文件:
scp -r 本地文件路径 服务器帐号名@服务器的adress:想要保存的路径 #从本地到服务器
scp -r 服务器帐号名@服务器的adress:文件路径 本地保存路径 #从服务器到本地
(若是文件夹的话记得添加参数 -r)
此时就成功将文件传输至远程服务器上:
MAIN_rlbx582nn6481jh4.seg 100% 4515 4.4KB/s 00:00
MAIN_zsp4okn800kqj6de.seg 100% 4511 4.4KB/s 00:00
MAIN_hwdyca2gv523zzks.seg 100% 4217 4.1KB/s 00:00
MAIN_cnu8gu1p96hmiuwq.seg 100% 4215 4.1KB/s 00:00
MAIN_m5z7hkpwt14ahuav.seg 100% 6066 5.9KB/s 00:00
manager.iml 100% 696 0.7KB/s 00:00
workspace.xml 100% 44KB 44.4KB/s 00:00
profiles_settings.xml 100% 228 0.2KB/s 00:00
misc.xml 100% 209 0.2KB/s 00:00
modules.xml 100% 266 0.3KB/s 00:00
watcherTasks.xml 100% 1241 1.2KB/s 00:00
test.db 100% 2048 2.0KB/s 00:00
manager.pyc 100% 6177 6.0KB/s 00:00