本文所用系统为 Ubuntu 18.04
 
什么是SSH?
    简单说,SSH是一种网络协议,用于计算机之间的加密登录。全名为:安全外壳协议。为Secure Shell的缩写。SSH为建立在应用层和传输层基础上的安全协议。
 
    如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。
 
    最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
 
    需要指出的是,SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文针对的实现是OpenSSH,它是自由软件,应用非常广泛。
 
OpenSSH的安装
检查SSH是否安装:
ssh localhost
通过APT的安装命令非常方便 : 
sudo apt install openssh-server

OpenSSH配置文件

如果安装成功以后,有关的配置文件都在/etc/ssh/sshd_config:
sudo gedit /etc/ssh/sshd_config
 
 
OpenSSH常用配置文件有两个/etc/ssh/ssh_config 和 /etc/ssh/sshd_config
ssh_config 为客户端配置文件
sshd_config 为服务端配置文件

通过命令对其进行编辑,在配置文件中,那些被注释掉的就是默认配置值。
解除注释(#),修改默认值,(比如Port 改为12345)
 
配置完成以后,通过以下命令生效
service ssh restart

注:
service ssh start // 开启SSH服务
service ssh stop // 停止SSH服务
service ssh restart // 重启SSH服务
可以通过以下命令查看SSH的运行结果
ps -e|grep ssh
SSH命令
常用命令
ssh [-l login_name] [-p port] [user@]hostname
 
远程但不登入,直接执行命令
方法1:ssh  [远程主机用户名]@[远程服务器主机名或IP地址] [命令]
方法2:ssh -l [远程主机用户名] [远程服务器主机名或IP地址] [命令]
 
远程登录到配置有OpenSSH的主机
由于本Ubuntu是设置在Windows虚拟机上,网络通过桥接。那么相当于,在本局域网内有2个主机:Windows 、 Ubuntu
 
由于已经搭建了Ubuntu的SSH服务端,那么我们可以在Windows端登录到Ubuntu查看效果。
 
Windows上用的工具比较多,常见的有:SecureCRT、Putty
如果指定的端口和IP没有错误的话,会弹窗告知远程服务器不可信,是否继续。
 
点击:“是”,输入用户名和密码,即可看到以下界面:
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64)

* Documentation:  https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage * Canonical Livepatch is available for installation.
- Reduce system reboots and improve kernel security. Activate at:
https://ubuntu.com/livepatch 269 packages can be updated.
25 updates are security updates. The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law. schips@ubuntu:~$
 
断开SSH登录有两种方法
Ctrl + D
输入logout
 
免密登录
配置免密登录的操作在客户端上面进行
假设我们有2台主机,当前登录的机器为192.168.1.100。
 
要登录的机器为192.168.1.101。
 
1.在当前的机子(100)上生成Keygen
ssh-keygen -t rsa
会有3次询问,一路回车即可
 
2.上传第一步公钥到服务器(101)
ssh-copy-id -i ~/.ssh/id_rsa.pub 远程用户名@远程IP

例如:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.101
 
完成。
 
 
scp 跨级远程拷贝
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。两台主机之间复制文件必需得同时有两台主机的复制执行帐号和操作权限。
比较适合在免密登录下拷贝
scp命令参数
-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)的选项。
scp一般有六种使用方法
本地复制远程文件:(把远程的文件复制到本地)
scp root@www.test.com:/val/test/test.tar.gz /val/test/test.tar.gz
远程复制本地文件:(把本地的文件复制到远程主机上)
scp /val/test.tar.gz root@www.test.com:/val/test.tar.gz
本地复制远程目录:(把远程的目录复制到本地)
scp -r root@www.test.com:/val/test/ /val/test/
远程复制本地目录:(把本地的目录复制到远程主机上)
scp -r ./ubuntu_env/ root@192.168.0.111:/home/pipi
pika:/media/pika/files/machine_learning/datasets$scp -r SocialNetworks/ piting@192.168.0.172:/media/data/pipi/datasets
本地复制远程文件到指定目录:(把远程的文件复制到本地)
scp root@www.test.com:/val/test/test.tar.gz /val/test/
远程复制本地文件到指定目录:(把本地的文件复制到远程主机上)
scp /val/test.tar.gz root@www.test.com:/val/
ps: scp复制文件时只指定服务器地址不加路径默认复制到哪里???
 
附录:SSH服务器常用配置设置
使用的命令:
sudo vi /etc/ssh/sshd_config
对应的修改项目
 
配置名
意义
备注
Port
使用的端口
可以通过添加多行以支持多个端口
Port 123
Port 456
ListenAddress 
监听的IP地址
 
Protocol
支持的SSH协议版本
Protocol 2,1 // 同时支持1,2
Protocol 2    // 使用SSH版本2
PermitRootLogin
是否允许root(建议no)
 
PermitEmptyPasswords
允许空密码登录(建议no)
 
PasswordAuthentication
允许使用密码配置(建议yes)
 
StrictModes
使用者的hot key改变以后否是仍然接受联机(默认yes)
 
PubkeyAuthentication
是否允许Public Key
仅针对 version 2
LoginGraceTime
多久时间没有连上的的断线时间
单位 m分钟 h小时,s秒(默认)
PrintLastLog
显示上一次登录的信息
Last login: Wed Mar 23 22:12:58 2016 from 192.168.1.100
 
关于Shell变量传递、防暴力破解等设置略。
变量传递指的是:将本地的环境变量(比如$1等)传递到ssh命令中进行执行(而不是使用远程SSH的环境变量)
 
防暴力破解主要使用的是    fail2ban 对网络环境进行设置

Ubuntu 开启SSH服务以及有关设置:安装,指定端口号、免密登录、远程拷贝的更多相关文章

  1. ubuntu开启SSH服务远程登录

    http://blog.csdn.net/jackghq/article/details/54974141 ubuntu开启SSH服务远程登录

  2. MongoDB官方下载安装设置配置文件指定端口号

    1.)下载 官网(https://www.mongodb.com/)右上角try free  进入下载中心,下载指定版本 ZIP和MSI随便 如果浏览器下载的慢,可以直接使用下载地址,然后迅雷下 操作 ...

  3. 如何在ubuntu开启ssh服务-使 SecureCRT远程登录

    不少人在第一次使用ubuntu系统的时候,用了很多种方法均没有办法开启SSH服务,ubuntu和其它的linux系统有所区别,因为在ubuntu下,service  sshd  restart  之类 ...

  4. 让ubuntu开启ssh服务以及让vi/vim正常使用方向键与退格键

    VIM 修复方法: 安装vim full版本,在full版本下键盘正常,安装好后同样使用vi命令.ubuntu预装的是vim tiny版本,而需要的是vim full版本.执行下面的语句安装vim f ...

  5. 【FATE】设置虚拟机固定IP以及免密登录

    一.前期准备 1.VMWare上新建三个Centos7的虚拟机 2.VMWare虚拟机的三种联网方式 1.桥接模式 -- 桥接: 默认使用VMnet0 这一种联网方式最简单,在局域网内,你的主机是怎么 ...

  6. ubuntu开启SSH服务

    SSH分客户端openssh-client和openssh-server 如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-g ...

  7. [转] ubuntu开启SSH服务

    点击阅读原文 SSH分客户端openssh-client和openssh-server如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo ...

  8. Linux - Ubuntu开启SSH服务

    SSH分客户端openssh-client和openssh-server. 如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt- ...

  9. ubuntu开启ssh服务时,报:start:Unknown job : ssh

    这里是参考网站资料,并记录下. 如图所示: 解决方法: 输入以下命令即可 /usr/sbin/sshd mkdir /var/run/sshd /usr/sbin/sshd netstat -nlt ...

随机推荐

  1. Matplotlib学习---用matplotlib画雷达图(radar chart)

    雷达图常用于对多项指标的全面分析.例如:HR想要比较两个应聘者的综合素质,用雷达图分别画出来,就可以进行直观的比较. 用Matplotlib画雷达图需要使用极坐标体系,可点击此链接,查看对极坐标体系的 ...

  2. Quartus prime16.0 组合逻辑always块中敏感向量表不全

    前言 组合逻辑always块中向量敏感表不全导致的警告. 流程 1.对于如下代码块: always @(nstate /*or master_din or master_dout_reg*/) beg ...

  3. hihocoder#1333 : 平衡树·Splay2 (区间操作)

    题面: #1333 : 平衡树·Splay2 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:好麻烦啊~~~~~ 小Hi:小Ho你在干嘛呢? 小Ho:我在干活啊! ...

  4. npm 淘宝源

    --------- npm: 淘宝源设置:npm config set registry https://registry.npm.taobao.org

  5. 【BZOJ3730】震波(动态点分治)[复习]

    题面 BZOJ 题解 动态点分治什么的完全不记得了.这回重新写一写. 首先我们把点分树给建出来. 操作只有两种,修改和询问距离某个点的距离不超过\(k\)的点的和. 两点之间的距离可以树链剖分之类的算 ...

  6. [luogu2571][bzoj1857][SCOI2010]传送门【三分套三分】

    题目描述 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxh ...

  7. CSS垂直翻转与水平翻转

    /*水平翻转*/ .flipx { -moz-transform:scaleX(-1); -webkit-transform:scaleX(-1); -o-transform:scaleX(-1); ...

  8. NOI2009管道取珠(dp)

    题意:给定两列球,可以从任意一列球的末尾弹出一个球,最后会得到一个序列,设第i种序列可以被a[i]种操作产生,那么会产生a[i]^2的贡献,求贡献和. Solution: 首先我们观察a[i]^2的含 ...

  9. kafka命令行脚本使用

    zookeeper集群部署:http://www.cnblogs.com/ding2016/p/8280696.html kafka集群部署:http://www.cnblogs.com/ding20 ...

  10. Python 分布式进程

    #-*-coding:utf-8-*- '''分布式进程指的是将Process进程分不到多台机器上,充分利用多台机器的性能完成复杂的任务''' #服务器端 #--------------------- ...