文章目录

  • SSH
    • SSH Server 的安装
    • 通过指定端口连接远程服务
    • 远程免密登陆
      • 生成公钥
      • 把公钥发送给SSH服务器
  • SCP
    • 将数据从本地传输至远程服务器
    • 将数据从远程服务器拉取到本地
    • 指定端口方法

SSH

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

SSH Server 的安装

在Windows平台,无论当作SSH服务器或客户端,一般情况都是需要依赖第三方工具,如果有需要假设服务器的朋友,可以参考这篇文章。 而通常我们使用的SSH服务器,一般是针对Linux服务而言的。

我平时用Debian、Ubuntu这类系统比较多,所以对于Ubuntu来说,安装SSH服务,可以执行下述命令:

$ sudo apt install openssh-server

对于现在Ubuntu 18.04以上版本来说,已经不需要在安装后编辑相关配置文件,但是如果需要禁止root权限登陆的话,那么需要在 /etc/ssh/sshd_config 中把 「PermitRootLogin」 从NO改为YES即可,而至于其他,比如修改默认的22端口,如果没什么特别的理由,这样会导致很多基于22端口通信的服务出现异常,比如GIT。

通过指定端口连接远程服务

通常Linux系统都是作为服务器,而大多数相信看我文章的朋友,大概使用云服务器的机会多过真物理机的机会。有时候因为路由器或者交换机端口映射的原因,又或者为了绕开公网对22端口的限制,或者虚拟专用网络的原因,你能使用到的服务器通常SSH的可访问是其他的端口号,比如1121,3348等。

而如果执行

$ ssh user@remote.server.ip.or.name.com

多会提示远程服务无法访问,所以这个时候我们就可以通过「-p」这个指令,显式的指定访问端口,例如:

$ ssh user@remote.server.ip.or.name.com -p 1128

远程免密登陆

远程免密登陆,通常是一种比较省事的操作,因为每次执行ssh登陆指令,都会被要求输入密码,所以对于懒人来说,我们可以通过「ssh-copy-id -i」这个指令,把本地计算机的公钥部署到SSH服务器上,以此达成免密登陆。

至于怎么做呢,首先

生成公钥

我们在本地,首先执行

$ ssh-keygen -t rsa

生成用RSA加密的公私钥。

把公钥发送给SSH服务器

加密钥匙生成完毕后,我们需要把公钥发送给SSH服务器,主要执行下述指令

$ ssh-copy-id -i ~/.ssh/id_rsa.pub  user@remote.server.ip.or.name.com

输入SSH登陆密码后,就可以免密正常登陆了。

SCP

Linux scp 命令用于 Linux 之间复制文件和目录。scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版2

将数据从本地传输至远程服务器

数据发送到远程设备上,一般有FTP、HTTP等协议,而基于SSH协议传输数据的SCP命令也是我们可以使用的重要工具。

scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file

如果需要一次性把一个文件夹的数据都发送给远程服务器,就需要执行下述指令:

scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder

比如,我们要把本地的代码,上传给服务器,然后在服务器上运行或者部署,就可以这样

$ scp -r ~/Desktop/SourceDir user@remote.server.ip.or.name.com:~/Desktop

将数据从远程服务器拉取到本地

scp除了可以把数据从本地上传到远程服务器,也可以反过来,把远程服务器的文件拉取到本地。

$ scp -r user@remote.server.ip.or.name.com:~/Desktop/Dir  ~/Downloads

「-r」这个指令表示递归,如果只是拉取一个文件,就不需要了。

指定端口方法

同样,我们也存在着远程服务器SSH端口不在22号的问题,所以需要使用「-p」,指定远程设备的端口号。这样当我们希望把数据推送到远程时,就可以这样执行:

$ scp -p 1121 -r ~/Desktop/Data/   user@remote.server.ip.or.name.com:~/Desktop

执行拉取命令也是一样的

$ scp -p 1121 -r user@remote.server.ip.or.name.com:~/Desktop  ./

  1. https://baike.baidu.com/item/ssh/10407?fr=aladdin ↩︎

  2. https://www.runoob.com/linux/linux-comm-scp.html ↩︎

Ubuntu系统管理 —— 使用SSH及SCP实现远程登陆与数据传输相关推荐

  1. Ubuntu下使用SSH 命令用于登录远程桌面

    Ubuntu下使用SSH 命令用于登录远程桌面 问题描述 工作经常需要在一台电脑(本地主机)上写代码,另一台电脑(服务器,计算力强)上进行训练,两台电脑上都安装的是Ubuntu18.04,为了在loc ...

  2. linux下ssh、scp无密钥登陆方法

    一:双方都是root用户登陆方法 A为本地主机(即用于控制其他主机的机器) B为远程主机(即被控制的机器server),假如ip为172.19.60.53: A和B的系统都是linux 在A上运行命令 ...

  3. Perl的Net::SSH::Perl模块实现远程登陆ssh

    执行cpan命令安装模 cpan install Net::SSH::Perl 选择SSH版本,直接默认即可 选择使用的加密方式,也是默认 默认回车同意安装 接下来你会看见很多地方让你选择yes或者是 ...

  4. Parallels虚拟机kali linux 启动ssh服务 容许root远程登陆

    # vim /etc/ssh/sshd_config 启动ssh服务,开机启动ssh # update-rc.d ssh enable 清空known_hosts文件中的内容,再重新连接 vim /U ...

  5. Linux运维:Shell脚本实现ssh免密登录远程服务器

    LInux系统日常运维过程中,经常需要在本地运行脚本执行对远程主机的命令,正常情况下,ssh登录远程服务器时会提示输入密码,这会影响到脚本的自动执行(因为shell脚本中没有自动填充密码的命令).有三 ...

  6. 远程登陆之SSH的简单用法及命令

    SSH简单使用 SSH的安装 启动服务器的SSH服务 SSH远程登陆 口令登陆 公钥登陆 配置别名 传输文件 SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现.OpenSSH是一种免费开源 ...

  7. 远程登陆协议SSH和talnet

    SSH和talnet是远程登陆协议.这两种协议都是基于客户端和服务器的思想. 1.SSH (secure shell外壳保护协议)是建立在应用层和传输层上的安全协议,可以有效防止远程管理过程中的信息泄 ...

  8. 如何远程登陆Linux服务器

    01.SSH介绍 ssh是专门为远程登陆提供安全的协议,SSH的默认端口号为22 终端命令组成: ssh [-p port] user@remote port是SSH 的端口号,默认值22 user指 ...

  9. 虚拟机ubuntu安装ssh服务器,经过Xshell远程链接虚拟机VMVARE中的Ubuntu

    本文将讲解如何经过Xshell远程链接虚拟机中的Ubuntu,从而没必要主系统和虚拟机来回切换.php 1. 下载并安装Xshell 先下载并安装合适版本的Xshell rj.baidu.com/so ...

最新文章

  1. TorchScript的简介以及项目踩坑
  2. linux内核 asmlinkage宏
  3. sicily 1082. MANAGER
  4. Redis String 类型操作及常用命令
  5. 7-5 图形继承与多态 (50 分)
  6. 统一变更域本地管理员密码
  7. delphi2010完美破解方法
  8. Java发送HttpRequest
  9. 新人如何聪明的学习计算机网络
  10. 淘宝打单发货API,淘宝打单发货接口
  11. 测试er如何通过MacOS连接IOS系统iPhone查看系统崩溃日志?
  12. TypeScript - 函数
  13. 短视频的素材在哪里找呢?推荐给你一个好办法
  14. 流氓软件与流氓系统的清理故事
  15. 目标跟踪数据集GOT-10k的配置
  16. 直流输电模型基于pscad仿真软件的3端直流输电模型
  17. 通过集成第三方IM实现聊天应用
  18. 为什么iPhone通常比Android具有更好的音质?
  19. 学习笔记-Matlab算法篇-规划算法
  20. 在Microsoft Office Word 或者WPS中插入代码实现色彩高亮和保持原有格式

热门文章

  1. QTcpSocket使用过程中的一些问题记录
  2. 如何甄选出一个优秀的软件供应商?by彭文华
  3. HDU2058 The sum problem(数学问题)
  4. 1000句英语经典口语(10)
  5. Foxmail管理多个电子邮箱
  6. Protobuf报错CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size):
  7. 双X轴的Echarts图
  8. [python3][题解]拖拉机
  9. 怎么更换vscode背景图,放入自己喜欢的图片
  10. android xposed软重启,Xposed插件安装更新免重启手机方案