在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的。

ssh登录远程主机(服务器)一般有两种方式:无密钥方式 和 有密钥方式。

无密钥方式需要每次都输入密码,而有密钥方式仅需第一次使用输入密码,以后均无需输入密码就能正确登录。

1 安装ssh

  • Server端需要安装并开启SSH服务

  • Client端需要支持ssh-keygen命令

    可用如下命令验证:

    ssh localhost
    

    如果结果为:

    则说明ssh未安装。安装命令为:

    sudo apt-get install openssh-server  
  • 确认两台机器能够连接到Internet

2 使用ssh

2.1 无密钥方式

  使用格式为:ssh 用户名@主机IP

  远程主机IP为192.168.31.116。

  

   

2.2 有密钥方式

①生成秘钥对(client端)

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

执行完上述命令后会在当前目录生成隐藏目录.ssh。用ls -l(简写为ll)命令查看,发现里面生成了两个新文件:id_rsa是私钥,id_rsa.pub是公钥。

需要指出的是,公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。

②将Client端的公钥添加到用于认证的Server端的公钥文件中 

ssh-copy-id user@ip_address

执行完上述命令之后,在server端可以看到用户目录/.ssh目录下生成了authorized_keys文件。

③在server端禁用通过密码登陆SSH的方式

sudo vim /etc/ssh/sshd_config

打开文件后,去掉下图画框的语句的注释(允许使用密钥自动登录):

④重启ssh服务:   

 sudo service ssh restart

 ⑤在客户端重新使用ssh登录,发现不再需要输入密码就直接登入了。

ssh 用户名@主机IP

  

使用ssh连接远程主机的更多相关文章

  1. ssh连接远程主机免密登入

    核心思想: 1.本地主机生成公钥私钥,私钥自己存着,公钥传到远程主机.ssh文件夹下authorized_keys文件(默认是这个,用追加的方式) 2.本地连接远程主机,公私钥对上就可以免密登入了. ...

  2. ssh连接远程主机执行脚本的环境变量问题

    近日在使用ssh命令ssh user@remote ~/myscript.sh登陆到远程机器remote上执行脚本时,遇到一个奇怪的问题: ~/myscript.sh: line n: app: co ...

  3. [ 转载 ] ssh连接远程主机执行脚本的环境变量问题

    近日在使用ssh命令ssh user@remote ~/myscript.sh登陆到远程机器remote上执行脚本时,遇到一个奇怪的问题: ~/myscript.sh: line n: app: co ...

  4. c# 使用ssh连接远程主机(ssh.net演示)

    本教程使用的是ssh.net这个库.项目地址:https://github.com/sshnet/SSH.NET 使用ssh客户端连接远程主机执行命令,并拿到输出结果: using (var sshC ...

  5. Linux中网卡相关命令以及SSH连接远程主机

    ifconfig 命令 查看与配置网络状态命令 关闭与启动网卡 ifdown 网卡设备名 禁用该网卡设备 ifup 网卡设备名 启用该网卡设备 查询网络状态 netstat 选项 -t 列出TCP协议 ...

  6. SSH登录远程主机执行脚本找不到环境变量

    这是因为在Linux上,bash会有四种模式,根据不同的case,Linux会加载不同模式的bash.一般如果你自己直接登录主机,能看到环境变量,但是使用ssh 远程登录执行脚本就找不到环境变量,那么 ...

  7. Linux实战教学笔记24:SSH连接原理及ssh-key

    目录 第二十四节 SSH连接原理及ssh-key讲解 第1章 SSH服务 1.1 ssh介绍 1.2 知识小结 第2章 ssh结构 2.1 SSH加密技术 第3章 ssh服务认证类型 3.1 基于口令 ...

  8. 配置ssh连接会话复用免密码登录

    我们经常使用ssh连接远程主机,为了方便,避免每次登录输入密码,通常使用密钥登录.如果没有设置密钥, 则需要使用密码登录了,若每次都输入密码则十分繁琐.我们可以设置ssh连接会话复用,则登录成功后,会 ...

  9. mac终端ssh连接服务器 空闲的时候 连接断开

    ssh_config详解(MAC OSX) 方法1:MAC客户端配置 配置“/etc/ssh/ssh_config”文件 “/etc/ssh/ssh_config” 文件是OpenSSH系统范围的配置 ...

随机推荐

  1. file_get_contents()函数

    $data = file_get_contents('http://www.zgjmwl.com/jinshui/pro_one/ceshi_a.php'); var_dump(substr($dat ...

  2. JKS TO PEM

    tomcat 的ssl 会使用到jks,而haproxy的ssl(非tcp代理方式)会使用到pem 如果从tomcat的ssl需要迁移到haproxy的ssl,就需要从jks中读取相关信息生成pem文 ...

  3. UICollectionView的使用小记录和一些说明

    // // MallTestViewController.h // fitmiss // // Created by bill on 16/6/28. // Copyright © 2016年 lea ...

  4. Rails 之微信开发 : OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

    微信公众平台,使用Ruby On Rails + Win7 在取得OpenID时,如果简单的使用http.get方法,会出现如下 SSL_connect returned=1 errno=0 stat ...

  5. android的一些关键词

  6. Google Tensorflow 源码编译(三):tensorflow<v0.5.0>

    这几天终于把tensorflow安装上了,中间遇到过不少的问题,这里记录下来.供大家想源码安装的参考. 安装环境:POWER8处理器,Docker容器Ubuntu14.04镜像. Build Tens ...

  7. C# 随机红包算法

    static void Main(string[] args) { ; ; double minAmount = 0.01; Random r = new Random(); ; i < num ...

  8. [经验交流] 为 mesos framework 分配资源

    前段时间我在办公网搭建了一套mesos平台,用于docker 集群相关的调研和测试,mesos + marathon + docker 架构运行正常.但是在启用了chronos后,marathon无法 ...

  9. some code of c

    // // main.c // LineList // // Created by Rubert on 16/9/11. // Copyright © 2016年 Study. All rights ...

  10. linux c 获取头文件函数getenv

    #include <stdio.h>#include <stdlib.h> int main(){ printf("%s\n", getenv(" ...