您的位置:首页 > 其它

【SSH】Ubuntu下通过SSH远程登录服务器的相关指令和文件传输方法

2017-01-19 00:12 736 查看

Overview

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

本文将主要介绍Ubuntu下通过SSH远程登录服务器的相关指令和文件传输方法:

Instruction

Installation

可以通过apt-get安装SSH相关服务:

sudo apt-get install openssh-client # install ssh-client
sudo apt-get install openssh-server # install ssh-server


Setup Service

启动/重启/停止ssh-server:

# Setup
sudo service ssh start
sudo /etc/init.d/ssh restart
sudo /etc/init.d/ssh start # optional
sudo /etc/init.d/ssh stop # optional


Modify Port

ssh-server默认的端口号是22,可以使用如下命令打开ssh配置文件,如果远程服务器防火墙有为scp命令设置指定的端口,则根据需要更改端口号:

# modify {Port}(default: 22), then RESTART
sudo gedit /etc/ssh/sshd_config
sudo /etc/init.d/ssh restart


配置文件内容大致如下,更改“Port 22”一行即可

# Package generated configuration file
# See the sshd(8) manpage for details
# What ports, IPs and protocols we listen for
Port 22
# Package generated configuration file
# See the sshd(8) manpage for details
# What ports, IPs and protocols we listen for


Check

判断ssh服务是否已经启动,可以通过如下命令执行:

# Check
sudo ps -e | grep ssh


示例输出如下所示:

2151 ?        00:00:00 ssh-agent
5313 ?        00:00:00 sshd


ssh-agent表示ssh-client已启动

sshd表示ssh-server已启动

Login

ssh服务启动后,即可使用用户名密码登陆,命令格式如下:

其中两种方式等价,{ServerIp}表示你要连接的服务器IP,{UserName}表示你的用户名

回车后再输入你的密码{PassWord},即可远程登录

# Login
ssh {UserName}@{ServerIp} # then input {PassWord}
ssh -l {UserName} {ServerIp} # then input {PassWord}


File Transfer

在Linux系统之间传输文件/文件夹的命令格式如下:

其中{LocalFile}表示本机的文件/文件夹/位置,{RemoteFile}表示服务器上的文件/文件夹/位置

无论是从本机复制文件到远程,或从远程复制文件到本机,所用指令相同,仅参数位置不同

# File/Folder Transfer
scp -r {LocalFile} {UserName}@{ServerIp}:{RemoteFile} # from local to remote
scp -r {UserName}@{ServerIp}:{RemoteFile} {LocalFile} # from remote to local


例如:

# 复制本机当前目录下的localfile.txt到远程主机指定目录
scp -r localfile.txt username@192.168.0.1:/home/username/
# 复制远程主机上的remotefile.txt到本机当前所在目录
scp -r username@192.168.0.1:/home/username/remotefile.txt .


scp是secure copy的缩写,是linux系统下基于ssh登陆进行安全的远程文件拷贝命令,可用于Linux之间文件或目录的复制

完整语法:

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2


简易写法:

scp [可选参数] file_source file_target


参数说明:

-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)的选项

p.s. 使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的

Exit

退出远程登录的命令也很简单:

# Exit
exit


Reference

[1] Ubuntu下ssh服务的安装与登陆(ssh远程登陆)

[2] Linux scp命令

[3] Ubuntu下ssh服务器文件操作命令

希望能够对大家有所帮助
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: