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

来源:互联网 发布:2016年淘宝打击刷单 编辑:程序博客网 时间:2024/04/27 20:27

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-clientsudo apt-get install openssh-server # install ssh-server

Setup Service

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

# Setupsudo service ssh startsudo /etc/init.d/ssh restartsudo /etc/init.d/ssh start # optionalsudo /etc/init.d/ssh stop # optional

Modify Port

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

# modify {Port}(default: 22), then RESTARTsudo gedit /etc/ssh/sshd_configsudo /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 forPort 22# Package generated configuration file# See the sshd(8) manpage for details# What ports, IPs and protocols we listen for

Check

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

# Checksudo 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},即可远程登录

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

File Transfer

在Linux系统之间传输文件/文件夹的命令格式如下:
其中{LocalFile}表示本机的文件/文件夹/位置,{RemoteFile}表示服务器上的文件/文件夹/位置
无论是从本机复制文件到远程,或从远程复制文件到本机,所用指令相同,仅参数位置不同

# File/Folder Transferscp -r {LocalFile} {UserName}@{ServerIp}:{RemoteFile} # from local to remotescp -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

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

# Exitexit

Reference

[1] Ubuntu下ssh服务的安装与登陆(ssh远程登陆)
[2] Linux scp命令
[3] Ubuntu下ssh服务器文件操作命令

希望能够对大家有所帮助

0 0