使用 ssh 免秘登录方式

(还可以使用 ssh-agent 缓存密码)

客户端:
1. 生成公钥和私钥

ssh-keygen

一般不需要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。

运行结束以后,在$HOME/.ssh/目录下,会新生成两个文件:id_rsa.pub和id_rsa

2.将公钥传送到远程主机 host上面

ssh-copy-id user@host -p port

附:复制到剪切板,可以粘贴到 github 的方法

$ sudo apt-get install xclip
# Downloads and installs xclip. If you don't have `apt-get`, you might need to use another installer (like `yum`) $ xclip -sel clip < ~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboard

3.配置 ssh 连接信息

vim $HOME/.ssh/config

写入相关参数

Host demohost
HostName 198.93.47.225
User root
Port 2782
IdentityFile ~/.ssh/id_rsa

编辑该文件权限

chmod 600 $HOME/.ssh/config

4.就 ssh信息添加到代理中

ssh-add

5.登录

ssh demohost

6.利用 scp传输文件

scp -P  /home/lg/Documents/Project/PycharmProjects/GroupBot/abc.ini root@182.93.57.215:/root

7.sftp 传输文件

$ sftp demohost
sftp> get Documents/1.txt /home/lg/Documents/

ssh 原理

1.生成一对公钥与私钥对(可以在客户端直接生成,也可以在其它地方生成)

ssh-keygen

2,客户端配置该私钥存放路径

Host book
HostName 139.97.102.212
User root
Port 22
IdentityFile ~/.ssh/book_solr.pem

3.服务器配置该公钥的内容保存到 ~/.ssh/authorized_keys 文件中

ssh-copy-id user@host -p port

4.前三步配置好了之后,客户端向服务器第一次发请求,会返回服务端的公钥并要求你确定。确定后,客户端拿到该公钥并保存到 know_hosts 中(可设置 StrictHostKeyChecking=no,会自动添加,不必手动确认)。

5.安全保证

公钥的两层作用(加密与验签)

数据加密:客户端向服务器发送信息(使用服务端公钥加密);服务器向客户端发送信息(使用客户端公钥加密的)。

验证签名:客户端使用私钥加密签名信息,服务端通过 authorized_keys 中的公钥解密并验签确保客户端来源的安全。

通过腾讯云工具生成一对公私钥,将私钥保存到客户端,公钥保存在服务器,登录时将加密消息通过私钥签名,腾讯云通过列表中的公钥验证签名正确,开始解密你的消息。

这里最重要的是签名,即便数据没有加密,只要你签名不对,你也是无法操作服务器的。

ssh 管理 linux登录远程服务器的更多相关文章

  1. MAC下ssh免密码登录远程服务器

    生成密钥.在终端下执行命令: ssh-keygen -t rsa 一路回车,各种提示按默认不要改,等待执行完毕.然后执行: ls ~/.ssh #可以看到两个密钥文件:id_rsa(私钥) id_rs ...

  2. linux SSH免密码登录远程服务器

    背景:无密码登录,所谓的无密码登录其实是指通过证书认证的方式登录,使用一种‘公私钥’认证的方式来进行ssh登录 在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加 ...

  3. ssh免密码登录远程服务器(不采用securecrt登录)

      http://blog.csdn.net/leexide/article/details/17252369       Linux/UNIX下使用ssh-keygen设置SSH无密码登录 标签:  ...

  4. [整理]配置SSH密钥自动登录远程服务器

    原理: 公钥私钥匹配通过验证,允许访问服务器. 简单步骤: 1.在本地创建一对密钥 2.将公钥传到需要访问的服务器上 3.将公钥放入服务器的authorized_keys,确保访问时能通过验证 4.本 ...

  5. 用Python写个自动ssh登录远程服务器的小工具

    很多时候我们喜欢在自己电脑的终端直接ssh连接Linux服务器,而不喜欢使用那些有UI界面的工具区连接我们的服务器.可是在终端使用ssh我们每次都需要输入账号和密码,这也是一个烦恼,所以我们可以简单的 ...

  6. mac 使用iTerm2快捷登录远程服务器

    mac 使用iTerm2快捷登录远程服务器 正常使用ssh登录服务器: ssh -p port user@host user@host's password: 输入端口,用户名,服务器ip地址后,还需 ...

  7. ssh免密连接远程服务器

    ssh免密连接远程服务器 借助ssky-keygen和ssh-copy-id工具,通过4个简单的步骤实现无需输入密码登录远程Linux主机 1 生成密钥 通过内置的工具生成RSA算法加密的密钥 ssh ...

  8. Windows如何快速远程到另一台Windows并管理多个远程服务器

    Windows如何远程到另一台 Windows管理多个远程服务器 Windows第三方远程管理工具 准备远程机器 开启远程机器的远程桌面功能 首先在此电脑(我的电脑)图标上点击鼠标右键,选择" ...

  9. 利用ssh-copy-id无需密码登录远程服务器

    本地机器生成公钥和私钥 ssh-keygen -t rsa 一路回车,最后会在~/.ssh目录下生成id_rsa和id_rsa.pub这两个文件. 与远程服务器建立信任机制 ssh-copy-id - ...

随机推荐

  1. IOS 数据存储之 SQLite详解

    在IOS开发中经常会需要存储数据,对于比较少量的数据可以采取文件的形式存储,比如使用plist文件.归档等,但是对于大量的数据,就需要使用数据库,在IOS开发中数据库存储可以直接通过SQL访问数据库, ...

  2. [Spring Unit Testing] Spring Unit Testing with a Java Context

    For example, we want to test against a implemataion: package com.example.in28minutes.basic; import o ...

  3. 网站菜单CSS

    #site-nav .down-menu a{height:88px;line-height:88px;border-bottom:0px solid #9e5ae2;transition-durat ...

  4. 20151028整理罗列某种开发所包括对技术(技术栈),“较为全面”地表述各种技术大系的图表:系统开发技术栈图、Web前端技术栈图、数据库技术栈图、.NET技术栈图

    ———————————— 我的软件开发生涯 (10年开发经验总结和爆栈人生) 爆栈人生 现在流行说全栈.每种开发都有其相关的技术.您是否觉得难以罗列某种开发所包括对技术(技术栈)呢?   您是否想过: ...

  5. [Aaronyang] 写给自己的WPF4.5 笔记8[复杂数据处理三步曲,数据视图精讲1/3]

    真的好累了 ,笑了.做回自己吧       -------------      Aaronyang技术分享 www.ayjs.net 博文摘要: 详细介绍了WPF中视图的种类和开始学之前的准备工作 ...

  6. redis 连接 docker容器 6379端口失败

    redis部署在docker容器中Could not connect to Redis 容器内redis-cli是可以直接连上的,但是在另一台服务器上就不能用外网ip来连了 虽然我创建redis容器时 ...

  7. 设置Nginx以列表方式显示网站内容

    服务器目录内容: 访问该页面时,将所有文件和目录按列表方式显示 nginx配置文件

  8. GCD 之线程死锁

    GCD 确实好用 ,很强大,相比NSOpretion 无法提供 取消任务的功能. 如此强大的工具用不好可能会出现线程死锁. 如下代码: - (void)viewDidLoad { [super vie ...

  9. 图文剖析自己定义View的绘制(以自己定义滑动button为例)

    自己定义View一直是横在Android开发人员面前的一道坎. 一.View和ViewGroup的关系 从View和ViewGroup的关系来看.ViewGroup继承View. View的子类.多是 ...

  10. react-无状态组件

    import React, { Component } from "react"; //import PostItem from "./PostItem"; / ...