linux中ssh免密通信的实现

什么是ssh

管理员可以通过远程登陆的方式,对通过网相连的分散于各处的多台主机进行管理操作。

管理员可以对远程主机进行如下操作:

  • 远程登陆
  • 远程命令执行
  • 远程文件传输

遗憾的事情是:这些操作不安全!

使用纯文本口令,并用明文发送

  • 信息可能会被截取,口令可能会被检索
  • 未经授权的人员使用截取的口令登陆系统而对系统造成危害

在日常操作练习时,用ssh登录其他主机时,可能会每次都需要输入登录密码,哪怕用scp复制东西也需要。

为了更方便快捷的切换主机,ssh免密通信不失为更好的选择;

用ssh-keygen生成密钥,默认保存在本地的/root/.ssh/id_rsa

然后在用ssh-copy-id分发至目标主机之上;登录用户@主机名或IP地址

注意:

1.最好是用主机名,在/etc/hosts文件中写入主机名和对应的IP地址;

2.免密通信需要双方相互认证,所以也需要在目标主机对本机做一次相同的操作;

[root@www ~]# ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)?
[root@www ~]#ssh-copy-id -i .ssh/id_rsa.pub root@172.16.75.1
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub"
The authenticity of host '172.16.75.1 (172.16.75.1)' can't be established.
ECDSA key fingerprint is SHA256:YXhbTS9MfK2IQC4gtOW4RL8voHvFqC1cAAMJXuF3Wec.
ECDSA key fingerprint is MD5:2c:c0:94:e8:3a:e4:74:88:c0:d8:e0:01:20:81:1d:8e.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.16.75.1's password:
Number of key(s) added: 1
Now try logging into the machine, with:  "ssh 'root@172.16.75.1'"
and check to make sure that only the key(s) you wanted were added.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • linux操作系统下配置ssh/sftp和权限设置方法

    基于 ssh 的 sftp 服务相比 ftp 有更好的安全性(非明文帐号密码传输)和方便的权限管理(限制用户的活动目录). 1.开通 sftp 帐号,使用户只能 sftp 操作文件, 而不能 ssh 到服务器 2.限定用户的活动目录,使用户只能在指定的目录下活动,使用 sftp 的 ChrootDirectory 配置 确定版本 #确保 ssh 的版本高于 4.8p1 否则升级一下 一般都高于这个版本 ssh -V 新建用户和用户组 #添加用户组 sftp groupadd sftp #添加用户

  • 在CentOS VPS上通过SSH安装 MySQL的方法图解

    输入yum install mysql-server 按Y继续 安装完成,设置开机启动Mysql,输入 chkconfig --levels 235 mysqld on 然后启动tomcat,输入service mysqld start 启动完毕,然后登录MYsql设置密码 输入set password for 'root'@'localhost' = password('12345678');来设置密码 至此,mysql安装完毕!然后创建数据库,首先用show databases;查看数据库

  • Linux上通过SSH挂载远程文件系统方法详解

    SSHFS的特点: 基于FUSE(Linux的最佳用户空间文件系统框架) 多线程:在服务器上可以有多个请求 允许大读取(最大64k) 缓存目录内容 步骤1:安装fuse-sshfs 对于centos/rhel用户,fuse sshfs在epel repository下可用,因此请确保在系统中安装了epel repository.现在执行以下命令安装它 在CENTOS/RHELL上: #yum install fuse-sshfs 在Ubuntu和Dabian上: $ sudo apt-get u

  • centos6.5配置ssh免秘钥登陆执行pssh命令的讲解

    1.检查并安装pssh,yum list pssh 2.因为没有配置免秘钥登陆,pssh命令执行失败. [root@bogon ]# pssh -H root@192.168.245.129 -i uptime [1] 11:00:36 [FAILURE] root@192.168.245.129 Exited with error code 255 Stderr: The authenticity of host '192.168.245.129 (192.168.245.129)' can'

  • jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明

    Publish Over SSH插件使用 在使用Publish Over SSH之前,需要制作SSH私钥.机器间做免密登录配置.假设机器A,ip为192.168.AA.AAA,机器B: 192.168.BB.BBB,机器A能够免密登录机器B,机器B能够免密登录机器A,制作方式是: 进入A机器,执行: cd ~ ssh-keygen -t rsa 通过下面的命令,表示可以通过机器192.168.AA.AAA免密登录到机器192.168.BB.BBB ssh-copy-id 192.168.BB.B

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

    SSH是指Secure Shell,是一种安全的传输协议,Ubuntu客户端可以通过SSH访问远程服务器 . SSH的简介和工作机制 SSH简介 传统的网络服务程序,如:ftp.POP和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据.而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到"中间人"(man-in-the-middle)这种方式的攻击.所谓"中间人"的攻击方式,就是"

  • Mac通过不同终端SSH连接远程服务器的讲解

    Mac使用Shell(终端)SSH连接远程服务器 前提:要有你需要连接的服务器的ip,端口号,服务器上的账户和密码 1.首先打开终端,然后输入sudo su - 回车进入根目录 2.然后输入:ssh -p 端口号 服务器用户名@ip (例如ssh -p 22 userkunyu@119.29.37.63)回车,到这会让你输入yes或者no来确认是否连接,输入yes回车 3.然后输入在服务器上的用户密码回车 4.到此进入的是你在服务器上的账户的目录,即为连接成功,最后输入sudo su -进入服务

  • Ubuntu基础设定:openssh-server的安装和使用介绍

    记录一下Ubuntu17.10的openssh-server的安装和使用.安装之后就可以使用ssh登陆Ubuntu了,所以是Ubuntu的基础设定之一. 事前准备 Ubuntu版本:17.10 devops@ubuntu:~$ cat /etc/issue Ubuntu 17.10 \n \l devops@ubuntu:~$ devops@ubuntu:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu

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

    安装SSHPASS 对于大多数最新的操作系统,sshpass软件包在默认软件包存储库中可用.可以使用以下命令在系统上安装它. 在Debian上: $ sudo apt install sshpass 在CentOS上: $ yum --enablerepo = epel -y install sshpass 使用SSHPASS sshspass使用sshspass环境变量存储用户密码.需要首先使用sshspass变量和密码,然后使用此命令.下面是一个使用sshspass的简单shell脚本. e

  • centos 修改ssh默认端口号的方法示例

    linux服务器一般默认的ssh端口号都为22,所以在大部分的使用者手中出于安全考虑就需要修改ssh的默认端口号,下面为为修改ssh默认端口号方法 一:修改/etc/ssh/sshd_config配置文件(注意:这里是sshd_config,而不是ssh_config) 1:查看ssh的默认端口号 netstat -anp|grep ssh 2:修改/etc/ssh/sshd_config配置文件 在sshd_config文件中添加一个端口号10011(这里保留22端口,是为了放置假如配置失败的

随机推荐