`
小鸡啄米
  • 浏览: 38783 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ubuntu ssh的配置与原理解释

阅读更多


基础安装

1.首先确定远程机器能上网,测试一下本地机器与远程机器能否互联,可以ping一下远程机器,当然要保证远程机器能响应icmp请求。可以通过检查在/etc/sysctl.conf文件中是否有

 

net.ipv4.icmp_echo_ignore_all = 1

 

 这一项,如果有或者没有也ping不通的情况下将这个net.ipv4.icmp_echo_ignore_all的值设置为0重启:

 

sudo sysctl -p
 

 

 

2.测试当前机器是否能ssh上

 

ssh kimbo@192.168.18.112
 

 

如果登录成功,就忽略下面的内容吧..

如果提示:

 

ssh: connect to host 192.168.18.112 port 22: Connection refused
 

 

就表明没安装或者配置上有问题.

在远程机器上安装:

 

sudo apt-get install openssh-server
ssh kimbo@192.168.18.112

 提示登录密码 OK.

 


 

3.ssh基础配置

sudo nano /etc/ssh/sshd_config
 

注意: 是sshd_config而不是ssh_config,sshd_config是配置ssh服务器的主要配置文件而ssh_config是客户端配置文件

示例几个比较常用的配置:

     1.改变常用端口号:

        将Port设置为30011: Port = 30011 

     2.PermitRootLogin //是否允许root用户登录

     重启ssh服务: 

 

sudo service ssh restart
 

 

  

4.实现无密码登录远程主机

登录ssh主机的时候或者拷贝一些文件的收总是要你输入密码,这是件令人很讨厌的事情。

ssh实现了公钥登录,暂且不理会这些概念,反正这样做了就不用输入密码了。

步骤:

        1.在本地主机上运行

 

 ssh-keygen
 

 

        一路回车,中间有个要密码的,直接为空就可以了,完了之后会在主目录下的.ssh目录下生成两个文件一个是id_rsa和id_rsa.pub

        如下提示:

 

The key fingerprint is:
        2c:6f:52:81:7e:b1:b3:b3:ef:7d:1e:b5:d3:e9:49:59 calvin@swallowsea
 

 

        2.将当前id_rsa.pub文件拷贝到你远程机器上的.ssh目录下


 

scp -P 30022 .ssh/id_rsa.pub kimbo@192.168.18.112:.ssh/ 
 

 

        3.在远程机器上的.ssh目录下执行:

 

cat id_rsa.pub >> authorized_keys
 

 

        4.测试:

ssh kimbo@192.168.18.112 -p 30022

         不用输入密码了,拷贝也一样。


5.概念:

ssh是一种采用了公钥加密的传输协议。

公钥加密: 公钥加密算法的过程简单的描述就是,一个是公开的密码,另一个是非公开的私钥,利用公钥将数据加密,利用私钥将加密的数据解密,反过来也可以。

5.1 普通的登录过程

ssh第一次登录过程:(ssh -p port username@host)

        1,首先,用户想远程机器发送登录请求。

        2,远程机器将公钥发送给请求登录的用户。

        3,用户机器提示是否要接受远程主机的公钥,接受后,用户机器利用公钥加密自己的密码,发送给远程机器。

        4,远程机器利用私钥解密密码,验证通过后登录

        5,验证通过后本地机器就会将公钥存到.ssh/known_hosts文件里。

        6,下次登录就不在提示是否接受远程主机的公钥了

这个过程中会有有个过程很是奇怪,为什么要提示是否接受公钥呢?

当第一次登录的时候是否会提示这样的:

 

The authenticity of host '[192.168.18.112]:30022 ([192.168.18.112]:30022)' can't be established.
ECDSA key fingerprint  is a8:07:59:5c:00:08:9b:2e:86:fd:94:d5:04:fd:c6:76.
Are you sure you want to continue connecting (yes/no)?
 

 

提示的意思大致是:esda(一种签名认证算法)公钥的指纹是XXXX,你是否要继续?(公钥的指纹指的是对公钥进行md5处理,这样就比较短了)证明一下这个公钥的确出自于要登录的那台机器:

打开远程机器上的/etc/ssh目录,找到一个ssh_host_ecdsa_key.pub文件,这个文件就是公钥文件。

执行:

 

ssh-keygen -lf ssh_host_ecdsa_key.pub
 

 

果然:

 

256 a8:07:59:5c:00:08:9b:2e:86:fd:94:d5:04:fd:c6:76  root@kimbo-VirtualBox (ECDSA)
 

 

其实这样的步骤目的就是为了要你确定当前的主机是否是你要连接的主机。因为根据公钥计算出来的公钥指纹是一定的,所以你可以根据公钥指纹来确定当前的主机是否是你要登录的机器。

这里有一个比较著名的攻击:中间人攻击,就是用伪造的公钥发给用户,用户输入密码,然后就可以套取密码了,所以这个提示的目的就是根据提供的公钥指纹来确定是否是你要登录的机器。

5.2 不用密码的登录过程

上面介绍的不用密码的登录过程是这样的..

1.用户机器请求登录,远程机器将发送一段随机的字符串

2.用户用本地的私钥(id_rsa文件)加密后,再发回到主机

3.远程主机用公钥(suthorized_keys文件)进行解密成功后就允许直接登录


 

分享到:
评论

相关推荐

    Ubuntu 20.04.1安装ssh离线资源包

    配置SSH服务通常涉及修改`/etc/ssh/sshd_config`文件,例如设置端口、限制登录方式(如禁止密码登录,仅允许公钥认证)、调整最大并发连接数等。同时,为了增强安全性,建议生成和部署强密钥对,并限制用户权限。 ...

    ubuntu ssh服务器安装,ssh连接错误

    如果这个端口被占用或被防火墙阻止,可以更改SSH配置文件`/etc/ssh/sshd_config`的`Port`选项,然后重启SSH服务。 4. **服务器配置**:错误的配置可能导致SSH连接失败。检查`/etc/ssh/sshd_config`文件,确保所有...

    linux Ubuntu下SSH无密码验证配置的方法步骤

    越来越多的小伙伴们使用远程登录,而ssh安全性无疑是很高的,那么我们现在来看看如何实现ssh无密码验证配置。 一. 准备工作 首先要确保你的linux系统中已经安装了ssh,对于ubuntu系统一般默认只安装了ssh client,...

    ubuntu start SSH service.docx

    Ubuntu SSH 服务配置和中文乱码解决...Ubuntu 系统中 SSH 服务的配置和中文乱码解决方法都是非常重要的知识点,用户需要了解 SSH 的基本原理和配置方法,以及如何解决中文乱码问题,以便更好地使用 SSH 远程登陆服务。

    Ubuntu1004安装SSH所需的包

    3. `openssh-server_5.3p1-3ubuntu3_i386`:这是SSH服务器端的软件包,与上述`openssh_5.3p1-3ubuntu3_all`相辅相成,专门针对服务器端的环境。`sshd`服务通过监听特定端口(默认为22)来接受SSH连接,确保数据在...

    window用ssh连接本机虚拟机中的ubuntu.docx

    在开始配置 SSH 连接之前,我们需要将虚拟机的 IP 地址设置为与主机相同的网段。在本例中,我们将虚拟机的 IP 地址设置为 192.168.1.111,子网掩码为 255.255.255.0,广播地址为 192.168.1.255,网关为 192.168.1.1...

    ubuntu安装与配置

    ### Ubuntu安装与配置知识点详解 #### 一、规划目录结构 - **背景**: 在安装Ubuntu之前,合理规划硬盘空间非常重要,尤其是对于初次接触Linux的新手来说。合理的分区可以帮助更好地管理和利用磁盘空间。 - **实践...

    Ubuntu环境下SSH的安装及使用详解

    在Ubuntu环境下,SSH的安装与使用是系统管理员和开发者进行远程管理服务器时必备的技能。以下是对Ubuntu环境下SSH的详细介绍: 首先,SSH的工作原理基于加密技术,确保在网络传输中的数据安全,防止数据被窃取或...

    基于Ubuntu的Hadoop简易集群安装与配置

    ### 基于Ubuntu的Hadoop简易集群安装与配置知识点详解 #### 一、绪论 ##### 1.1 研究背景及意义 在当前信息化社会中,随着科技的发展与进步,尤其是互联网技术的普及,我们正处在一个数据爆炸的时代。各行各业都在...

    SSH Secure Shell.rar

    在本文中,我们将深入探讨SSH的工作原理、安装与配置、以及其在Linux系统管理中的应用。 **一、SSH工作原理** SSH通过公共密钥加密技术来确保通信的安全性。当用户尝试连接远程服务器时,服务器会提供一个公钥给...

    ssh整合适合新手

    SSH整合通常指的是在服务器端配置SSH服务,并与前端应用如Spring框架进行集成,以实现远程管理和自动化运维。 对于SSH初学者来说,了解以下知识点至关重要: 1. **SSH基础**:理解SSH的基本原理,包括客户端和...

    基于SSH的BBS论坛系统

    2. **SSH的安装与配置** 在Linux系统中,SSH服务通常由`sshd`守护进程提供。可以通过`apt-get`(Debian/Ubuntu)或`yum`(CentOS/RHEL)等包管理器安装SSH。配置文件一般位于`/etc/ssh/sshd_config`,这里可以设置...

    linux远程连接ssh

    SSH的工作原理基于公钥基础设施(PKI),即每个主机都有一个公钥和私钥对。当客户端尝试连接到服务器时,服务器会提供其公钥,客户端检查这个公钥是否与已知的、信任的公钥匹配。如果匹配,就会建立加密的连接。这样...

    在Ubuntu安装配置hbase

    在Ubuntu系统上安装配置HBase是一项重要的任务,尤其对于那些需要处理大规模数据的项目而言。HBase是一个分布式的、面向列的开源数据库,它构建于Hadoop之上,提供了实时读写和强一致性。以下是在Ubuntu上安装和配置...

    在Ubuntu上配置Hadoop集群

    ### 在Ubuntu上配置Hadoop集群的关键知识点 #### 一、任务概述 本文档旨在指导用户如何在Ubuntu系统上搭建一个分布式的Hadoop集群。通过详细的操作步骤和注意事项,确保读者能够顺利地完成集群的配置。 #### 二、...

    SSH Unix Secure Shell工具

    **SSH配置优化** 为了提高SSH的安全性,可以禁用密码登录,只允许密钥认证;限制可登录的用户或IP地址;定期更新SSH软件以防止利用已知漏洞;启用“UseDNS no”选项以防止DNS反向查询带来的延迟。 总的来说,SSH ...

    SSH协议安装包及安装说明

    SSH(Secure Shell)协议是一种网络协议,用于在不...总的来说,理解和掌握SSH协议的安装与配置是每个Linux管理员和HADOOP操作员的必备技能,它不仅提供了安全的远程访问,也是实现大规模分布式系统如HADOOP的基础。

    Ubuntu中文参考手册

    - **SSH**:解释了SSH服务的配置方法,包括密钥认证、端口转发等高级功能。 - **邮件**:讲述了如何配置邮件服务器,包括SMTP、POP3协议的应用。 - **本地化**:说明了如何设置语言环境,以满足不同国家和地区的...

    SSH (我的智囊团)文档

    在本文中,我们将深入探讨SSH的基本概念、工作原理、安装与配置,以及安全最佳实践。 **1. SSH的基本概念** SSH最初由Tatu Ylönen开发,旨在替换传统的telnet和rlogin等不安全的远程访问协议。它提供了加密的数据...

Global site tag (gtag.js) - Google Analytics