一、SSH服务

1. 安装SSH

(1)查看是否已经安装过ssh服务

rpm -qa |grep ssh

(2)进行安装

sudo apt-get install openssh-server
  • Ubuntu缺省安装了openssh-client,如果没有输入:

      sudo apt-get install openssh-client

2. 运行SSH服务

(1)开启SSH

/etc/init.d/ssh start

(2)验证启动成功

ps -e | grep sshd

(3)查看ssh服务状态

service ssh status

3. 理解配置文件

ssh-server配置文件位于/etc/ssh/sshd_config
  • Port 22:SSH默认服务端口为22
  • KeyRegenerationInterval 3600:服务器密钥一小时重新生成一次
  • ServerKeyBits 1024:服务器密钥长度1024
  • LogingGraceTime 120:限定用户必须在120秒内成功进行认证。
  • PermitRootLogin yes:允许超级管理员远程登录
  • PasswordAuthentication yes:支持密码认证
  • 可以使用RSA公钥认证的方式登录Linux:
    • RSAAuthentication yes
    • PubkeyAuthentication yes
  • AllowTcpForwarding yes:开启端口转发
  • X11Forwarding yes:开启X11转发

4. 远程接入测试

  • 在主机或其他终端中使用ssh服务。实践中使用windows中的putty软件接入。

  • 输入用户名和密码接入虚拟机:

二、身份验证

1. 使用用户名密码实现身份认证

  • 输入用户名和密码接入虚拟机:

2. 使用证书实现身份认证

(1)生成密钥对

  • 运行puttygen.exe 选择Generate生成密钥对(生成过程中需要在当前程序活动窗口中滑动鼠标以生成随机密钥)。

  • 生成密钥对如下图所示。

  • 点击save private 将私钥.ppk 文件保存到本地。并复制公钥内容。

(2)将公钥发送到虚拟机

  • 使用PUTTY连接主机,获得root权限。
  • vim ~/.ssh/authorized_keys:打开要修改的文件将公钥内容粘贴进去,保存并退出。

(3)修改配置文件

vim /etc/ssh/sshd_ config
  • 修改部分(一般情况下不需要更改):

      PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
  • 保存退出,断开连接。

(4)使用私钥连接

  • 再次使用PUTTY进行连接时,选择“连接”->“SSH”->“认证”,选择保存在本地的私钥文件。

  • 在“连接”->“数据”中输入自动登录的用户名

  • 公钥认证连接成功

三、文件传输和程序运行

1. 使用WinSCP客户端连接并进行文件传输

  • 输入Linux的ip地址、用户名和密码,SSH服务默认端口号为22:

  • Login之后会提示是否缓存密钥:

  • 登录成功后就可以进行文件传输:

2. 用Windows中的PUTTY运行XWindows程序

  • 开启Xming 程序,在PUTTY中勾选允许X11映射:

  • 以root账号登陆,编辑SSH服务器的配置文件/etc/ssh/sshd_config

    • 开启TCP转发和X11转发:

        AllowTcpForwarding yes
      X11Forwarding yes
    • 如果登陆用户名与存放公钥的文件夹的拥有者不同,则需要更改:

        StrictModes no
      - StrictModes yes必须保证存放公钥的文件夹的拥有与登陆用户名是相同的。
    • 如果机器禁止ROOT远程登录,还需要更改:

        PermitRootLogin yes
  • 在桌面上打开Xming 的快捷方式,在目标的命令行中加上-ac 的参数:

  • 打开PUTTY,在终端登陆Linux。将输出映射到本机:

      export DISPLAY = 本机IP:0.0
    - 0.0 表示Xming 的display number为0,如果display number设置成其他值则需保持一致
  • 在PUTTY中输入命令即可打开相应的程序


参考资料

参考资料1:rpm常用命令及rpm参数介绍

参考资料2:ssh 配置讲解大全

参考资料3:Linux基础实践

Linux课程实践一:Linux基础实践(SSH)的更多相关文章

  1. Linux课程---3、Linux远程登录和传输(操作Linux服务器软件)

    Linux课程---3.Linux远程登录和传输(操作Linux服务器软件) 一.总结 一句话总结: xshell:Xshell是一个强大的安全终端模拟软件 Xshell是一个强大的安全终端模拟软件, ...

  2. 尚学linux课程---4、linux网络配置及linux文件

    尚学linux课程---4.linux网络配置及linux文件 一.总结 一句话总结: linux下的etc目录是配置文件的目录,所以很多的文件配置操作都可以看到它的身影:比如 init系列命名,比如 ...

  3. Linux课程---11、Linux中软件安装和调试

    Linux课程---11.Linux中软件安装和调试 一.总结 一句话总结: 启动过程:1.安装软件,2.修改配置文件,3.启动服务 查看过程:4.查看进程,5.查看端口 关闭过程:6.关闭软件,7. ...

  4. Linux课程---8、Linux启动流程

    Linux课程---8.Linux启动流程 一.总结 一句话总结: grub启动引导界面(比如装了多系统,选择系统),找到linux内核 启动init程序,加载各种驱动 1.进入grub界面选择相应的 ...

  5. Linux课程---4、Linux目录结构及常用命令(目录结构)

    Linux课程---4.Linux目录结构及常用命令(目录结构) 一.总结 一句话总结: 家目录:./root:root用户的家目录 能执行的程序:./bin:所有用户都能执行的程序:./sbin:只 ...

  6. Linux课程---2、Linux下最常用命令(查看帮助命令)

    Linux课程---2.Linux下最常用命令(查看帮助命令) 一.总结 一句话总结: man 1.显示文件? ls:ls带其它参数详情可以man ls man ls:比如 ls -a显示隐藏文件,l ...

  7. 尚学linux课程---10、linux环境下安装python

    尚学linux课程---10.linux环境下安装python 一.总结 一句话总结: 直接在官网下载python的源码包即可,然后在linux下安装 linux下安装软件优先想到的的确是yum,但是 ...

  8. 尚学linux课程---7、linux系统管理命令

    尚学linux课程---7.linux系统管理命令 一.总结 一句话总结: 查网络:netstat -ntpl 查进程:ps 1.需要下载163yum源(从外部源同步仓库)里面的所有rpm文件? re ...

  9. 尚学linux课程---6、linux命令介绍

    尚学linux课程---6.linux命令介绍 一.总结 一句话总结: linux中命令的一般格式:命令关键字 选项 参数1 参数2 1.linux基本原则? 一切皆文件 配置文件保存为纯文本格式 2 ...

  10. 尚学linux课程---5、linux操作系统介绍

    尚学linux课程---5.linux操作系统介绍 一.总结 一句话总结: centos开源免费,用的特别多 1.库是什么意思? 没有执行入口的应用程序 2.linux和window下的动态库文件是什 ...

随机推荐

  1. HTML5 History API实现无刷新跳转

    在HTML5中, 新增了通过JS在浏览器历史记录中添加项目的功能. 在不刷新页面的前提下显示改变浏览器地址栏中的URL. 添加了当用户单击浏览器的后退按钮时触发的事件. 通过以上三点,可以实现在不刷新 ...

  2. jquery “做页面滚动到某屏时改变状态标题” 所用知识点记录

    浏览器滚动条滚动时触发事件 //浏览器滚动条滚动时触发事件 $(window).scroll(function(){}); 浏览器窗口大小改变时触发事件 //浏览器窗口大小改变时触发事件 $(wind ...

  3. C#中的继承

    按照我个人的理解,继承和实现接口不是一个概念,结构和类型都可以实现接口,枚举不能. 话说,结构可以继承吗? 先梳理一下C#中的继承关系,如下图: class => [BaseClass => ...

  4. mac 设置 git 和github 告别命令行

    针对和我一样的新手,大虾们请轻拍. 很多小伙伴都想用git管理自己的代码,或者想在github上上传自己的项目.在网上找了几篇这方面的文章,都是用命令行设置的. 用命令行管理和安装太坑爹,这里有一个简 ...

  5. OpenGL学习笔记3——缓冲区对象

    在GL中特别提出了缓冲区对象这一概念,是针对提高绘图效率的一个手段.由于GL的架构是基于客户——服务器模型建立的,因此默认所有的绘图数据均是存储在本地客户端,通过GL内核渲染处理以后再将数据发往GPU ...

  6. Java:国际化

    Java的国际化: 资源文件的命名可以有如下三种形式:baseName _ language _country.properties baseName _language.properties bas ...

  7. 几种常见 容器 比较和分析 hashmap, map, vector, list ...hash table

    list支持快速的插入和删除,但是查找费时; vector支持快速的查找,但是插入费时. map查找的时间复杂度是对数的,这几乎是最快的,hash也是对数的.  如果我自己写,我也会用二叉检索树,它在 ...

  8. lintcode-【中等】恢复IP地址

    题目 给一个由数字组成的字符串.求出其可能恢复为的所有IP地址.链接. 样例 给出字符串 "25525511135",所有可能的IP地址为: [ "255.255.11. ...

  9. 【多线程 5】线程池的类型以及submit()和execute()的区别

    就跟题目说的一样,本篇博客,本宝宝主要介绍两个方面的内容,其一:线程池的类型及其应用场景:其二:submit和execute的区别.那么需要再次重申的是,对于概念性的东西,我一般都是从网上挑选截取,再 ...

  10. windows脚本配置ip地址

    背景:工作上经常涉及到要调试设备,每次都要手动配置静态ip地址,配置完之后还要重新改回来,有时候为了连续调试多台设备,来回手动更改ip,实在麻烦. 思考:想到windows有脚本,可以利用脚本文件达到 ...