`
joerong666
  • 浏览: 418119 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于ssh命令研究以及SSH信任详解

 
阅读更多

本文主要介绍一下几个要点内容:

1  ssh客户端的DEBUG调试

2  ssh的转义符用法(比如切换ssh会话)

3  ssh的信任登陆(即登陆不需要手动输入密码)<!--more-->

1  ssh客户端的DEBUG调试

有时候我们有必要对于一些ssh连接故障通过调试信息确定问题和解决,选项-v即实现此功能。

例如没有使用debug信息:

[root@server ~]#  ssh -l root 192.168.9.104 ssh: connect to host 192.168.9.104 port 22: Connection refused

包含debug信息:

[root@server ~]#  ssh -v -l root 192.168.9.104 OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug1: Connecting to 192.168.9.104 [192.168.9.104] port 22. debug1: connect to address 192.168.9.104 port 22: Connection refused ssh: connect to host 192.168.9.104 port 22: Connection refused

这个信息说明,配置文件里面已经修改了默认的端口号

 

2  ssh的转义符用法

切换SSH会话:当你登录到本地主机使用SSH从远程主机,你可能要回来执行一些活动,然后再返回到远程主机了。在这种情况下,不需要断开SSH会话到远程主机。 而是按照下列步骤:

1  远程登录到某台机器:server#ssh -l 用户名 主机名(或者IP)

2  现在已经在远程机器上:client#

3  回到localhost:先输入转义符“~”,然后输入ctrl+z,回车:

[root@client ~]# ~^Z [suspend ssh]

 

[1]+  Stopped                 ssh -l root 192.168.9.104 -p 9922 [root@server ~]# 4   现在又回到了本地主机,远程主机的SSH客户端会话作为后台运行的进程工作,检查运行如下所示:

[root@server ~]# jobs [1]+  Stopped                 ssh -l root 192.168.9.104 -p 9922

5    现在回到远程主机:

[root@server ~]# fg %1 ssh -l root 192.168.9.104 -p 9922 [root@client ~]#

 

2  ssh信任登陆:

在远程登陆主机的事情,都会要求你输入密码,这样很麻烦,尤其是在密码复杂不好记忆的时候。所以可以设置ssh信任,这样可以直接登陆而不需要输入账号密码信息。

实验要求:

建立SSH信任将server主机做为客户端(发起SSH请求)将client主机作为服务器端(接收ssh请求)

1.server主机生成公,私钥证书

[root@server ~]# ssh-keygen -t dsa  #生成dsa算法的证书,rsa算法在-t后 加  rsa Generating public/private dsa key pair. Enter file in which to save the key (/root/.ssh/id_dsa): #这一步询问私钥和公钥存放的地址,一般我们要将它放在这个默认的目录下,因此直接敲回车 Enter passphrase (empty for no passphrase): #-这一步询问这个信任有关系是否需要密码,我们本来就是为了简化输入密码这个步骤的,当然这里就不需要密码了,因此直接回车 Enter same passphrase again: #这一步是密码确认,直接回车 Your identification has been saved in /root/.ssh/id_dsa. Your public key has been saved in /root/.ssh/id_dsa.pub. The key fingerprint is: 2e:f6:1b:00:23:9e:27:3f:19:48:83:89:e9:ee:d4:5e root@server.dongwm.com

这步之后,生成2个文件:id_dsa和id_dsa.pub,其中id_dsa文件是私钥文件,而id_dsa.pub文件是公钥文件,接下来的步骤中我们就需要将id_dsa.pub里的内容添加到client的信任关系中

 

2. 在client机器上的用户XXX帐号下(我这里是root)的~/.ssh/authorized_keys或者~/.ssh/authorized_keys2中添加一行文件,即 id_dsa.pub里的内容,注意这个内容是一行,不要因为拷贝而带了额外的回车符。其中authorized_keys2表示采用ssh2登陆。

[root@server ~]# scp -P 9922 ~/.ssh/id_dsa.pub root@client.okooo.com:/root/.ssh/authorized_keys

注:引入“ssh-copy-id ”这个命令

 

ssh-copy-id 其实是一个自带的脚本,因为authorized_keys不容易记住,可以用如下格式:

# ssh-copy-id -i ~/.ssh/id_rsa.pub user@server效果和上面的一样。

当不使用默认的22端口,使用这样的命令:

#ssh-copy-id -i ~/.ssh/id_rsa.pub “-p 端口号码 user@server”

至此我们已经建立了机器server上root到机器client上用户root之间单向信任关系,即可以直接让机器server上的root直接登陆机器client上用户root,但是不能反过来操作,也不能用户其他用户。

具体的原因实际上是基于PKI的非对称式加密的,在id_dsa是私钥文件,每次登陆的时候由它来生成一个签名文件,将这个签名文件发送给服务器client,服务器client从它的authorized_keys文件里找到登陆机器的公钥,利用这个公钥来验证签名是否合法,如果合法则登陆。

3.修改.ssh目录以及authorized_keys文件的可访问性

.ssh文件的访问性修改为700就可以了,authorized_keys要644

4.连接信息在/var/log/secure中

分享到:
评论

相关推荐

    ssh命令详解和例子

    ### SSH命令详解与实例 SSH(Secure Shell)是一种网络协议,用于操作远程计算机上的服务,提供了安全的登录、文件传输及执行远程命令的功能。本文将深入解析SSH的基础命令及其应用场景,帮助读者更好地理解和掌握...

    linux_ssh命令

    ### Linux SSH 命令详解 #### 概述 Linux SSH 命令是一种非常重要的工具,用于在不同计算机之间建立安全的连接。通过 SSH,用户可以在本地机器上控制远程服务器,执行各种任务,如文件传输、命令执行等。本文将详细...

    ubuntu下ssh配置详解

    Ubuntu 下 SSH 配置详解 在 Linux 的 Ubuntu 版本下,配置 SSH 服务是一件非常重要的事情。SSH(Secure Shell)是一种安全的远程登录协议,可以实现远程登录到服务器上。下面将详细介绍在 Ubuntu 下配置 SSH 服务的...

    ssh协议详解(汇总)

    ssh协议详解ssh协议详解ssh协议详解ssh协议详解

    详解SSH框架和Redis的整合

    1. **相关Jar文件**:为了实现SSH与Redis的整合,需要引入Redis客户端Jedis的jar包(如jedis-2.3.1.jar)以及Spring对Redis支持的相关jar包(如spring-data-redis-1.3.4.RELEASE.jar)。此外,还需要连接池管理的库...

    ssh常用命令

    ### SSH常用命令详解 在IT领域,特别是网络管理和远程服务器操作中,SSH(Secure Shell)是一种广泛使用的协议,用于安全地进行远程登录、文件传输和其他网络服务。对于初学者而言,掌握SSH的基本命令是十分重要的...

    ssh流程图详解

    ssh流程图详解,从jsp、服务器、控制层、spring容器、数据库、公共服务接口、外部系统的流程图。

    SSH框架集成(图)详解

    SSH框架集成详解SSH框架集成详解 SSH框架集成详解SSH框架集成详解

    python使用paramiko实现ssh的功能详解

    总的来说,Paramiko库提供了丰富的API,不仅可以用于执行远程命令,还可以实现文件传输、端口转发等功能,是Python进行SSH操作的强大工具。在实际使用中,要确保服务器配置正确,并妥善管理好认证密钥,以保障安全性...

    ssh1或ssh2的有关配置和说明项详解

    6. **配置项详解**:`ssh各项配置.txt`和`ssh2分页.txt`可能包含了详细的SSH配置项解释和分页实现的代码示例。 总之,SSH1和SSH2都是为了提供安全的远程访问,但SSH2提供了更强的安全性和更多的配置选项。理解并...

    SSH整合原理以及步骤详解

    这篇文章将深入探讨SSH整合的原理以及实现步骤,帮助初学者掌握这一关键技能。 **一、SSH框架简介** 1. **Spring框架**:Spring是一个全面的Java应用框架,它提供依赖注入(DI)和面向切面编程(AOP)等功能,使得...

    详解SSH如何配置key免密码登录

    在本地机器上执行以下命令来生成SSH密钥对: ``` [root@localhost ~]# ssh-keygen ``` 按提示操作,默认情况下可直接按回车键使用默认设置。如果需要修改密钥文件的存放位置或其他选项,可以根据提示输入相应的...

    bash脚本中将密码传递给ssh/scp命令方法详解

    在Linux系统中,有时我们需要通过bash脚本来自动化执行SSH(Secure SHell)或SCP(Secure Copy)命令,例如在远程服务器之间传输文件。然而,这些命令通常需要用户提供密码,这在脚本化环境中是不理想的,因为手动...

    SSH的使用详解.doc

    SSH 使用详解 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。随着互联网的发展,明文通信变得不安全,芬兰学者 Tatu Ylonen 于 1995 年设计了 SSH 协议,将登录信息全部加密,成为互联网安全的一...

    linux的ssh详解.sh

    linux的ssh详解.sh

    ssh.rar_J2EE SSH_java ssh 详解_ssh_ssh j2ee

    这个"ssh.rar"压缩包可能包含了关于如何整合和使用这三个框架的详细教程和源码实例,帮助开发者深入理解和掌握SSH架构。 1. **Spring框架**:Spring是一个全面的Java应用开发框架,核心特性包括依赖注入(DI)和...

    H3C华三开启SSH配置登录

    ### H3C华三网络设备SSH配置详解 #### 一、引言 SSH(Secure Shell)是一种加密的网络传输协议,常用于远程登录管理网络设备。对于H3C(华三)网络设备而言,SSH提供了安全的方式来管理和配置设备。本文将详细介绍...

    ssh.rar_java ssh 详解_ssh

    在"ssh框架整合步骤讲解.pdf"中,可能涵盖了这些配置细节以及实际案例,帮助开发者理解并掌握SSH的整合过程。这份教程对于学习SSH技术栈的人来说是一份宝贵的资源,不仅可以学习到SSH的基础知识,还能了解到实际项目...

Global site tag (gtag.js) - Google Analytics