使用SSH连接服务器和SCP上传下载文件教程

本文主要总结使用ssh连接服务器和scp上传下载文件相关教程。
最近买了一台服务器,需要用到这里的命令。所以有了这篇文章总结。


连接服务器

方式1 用户密码连接

在ubuntu系统中,你可以打开终端使用如下命令连接服务器

1
2
3
//username 为你服务器系统的用户名 ipaddress为你服务器系统的ip地址
ssh username@ipaddress
//后面需要你输入服务器密码,正确输入之后即可连接

方式2 密钥连接

具体步骤

  • 生成ssh密钥
1
ssh-keygen

说明:默认生成在用户主目录中的.ssh文件夹中。带pub的是公钥

  • 然后将本地公钥添加到服务器中,需要使用另一个命令:
    1
    scp -P 端口号 本地文件路径 用户名@远程服务器地址:远程路径

然后登陆服务器,找到复制进去的公钥,将公钥名字改为authorized_keys并添加到对应的.ssh文件夹中。然后退出SSH重新登陆试试,成功的话不需要输入密码就会直接进入远程服务器。

  • 复制命令
    1
    mv 原文件路径 目的文件路径

注意事项

  • 解决ssh登录后闲置时间过长而断开连接
1
2
3
4
5
6
7
8
9
#方法一:
vim /etc/ssh/sshd_config #配置文件,修改ClientAliveCountMax(单位为分钟)为想要的值!
service sshd reload #使配置立即生效!
#方法二:
# 修改/etc/profile配置文件:
vi /etc/profile
文件末尾添加
TMOUT=1800
这样30分钟没操作才自动LOGOUT
  • 如果系统中默认没有安装ssh,需要安装:
    1
    2
    3
    4
    5
    6
    7
    1、sudo apt-get install openssh-server //安装命令
    2、ps -ef|grep ssh //查看启动ssh没有
    3、重启SSH服务:
    sudo /etc/init.d/ssh stop
    sudo /etc/init.d/ssh start
    4、客户端命令行登陆:ssh username@IP
    5、ssh配置文件位于/ etc/ssh/sshd_config,默认端口是22,你可以自己定义成其他端口号;

文件上传下载

针对这种情况,可写脚本批量上传下载

命令总结如下:

1
2
3
4
5
6
7
8
# 从服务器上下载文件
scp username@servername:/path/filename /Users/mac/Desktop(本地目录)
#上传本地文件到服务器
scp /path/filename username@servername:/path
# 从服务器下载整个目录
scp -r username@servername:/root/(远程目录) /Users/mac/Desktop(本地目录)
# 上传目录到服务器
scp -r local_dir username@servername:remote_dir

注意:目标服务器要开启写入权限

解决上传的时候 Peemission denied

由于没有服务器某一目录的操作权限,默认的是在/tmp有权限

在进行传输的时候,可以先把文件放到tmp文件目录下,然后在进行mv 或者scp到其他目录,即可。但是这样的话经历了一种中间过程,所以我们可以对当前用于的目录进行权限的修改

1
2
3
4
ssh username@ip_address
sudo chmod 766 指定目录
exit
scp 本地文件目录 远程服务器用户名@ip_address:指定目录

其他方案

相关帮助