s15day14 ssh秘钥远程连接

1 使用密钥登录
    1.1 创建密钥对
    1.2 上传公钥文件
    1.3 导入公钥信息
    1.4 使用密钥对登录
2 远程执行命令
    2.1 简单命令
    2.2 使用脚本执行多命令

192.168.1.104作为客户机
192.168.1.103作为服务器

1 使用密钥登录

1.1 创建密钥对

在SSH客户机创建用户秘钥对

ssh-keygen -t rsa 之后全回车即可
将会在~/.ssh目录中生成两个文件:id_rsa(私钥) 与 id_rsa.pub(公钥)

1.2 上传公钥文件

当然,也可以直接将内容拷贝粘贴

scp ~/.ssh/id_rsa.pub [email protected]168.1.103:~/.ssh/id_rsa.pub_192.168.1.104

1.3 导入公钥信息

在SSH服务器中导入公钥文本
在服务器中,目标用户(用来远程登录的用户)的公钥数据库位于~/.ssh/目录下,默认文件名是authorized_keys
注意修改authorized_keys权限

# 如果authorized_keys不存在,则创建它
touch ~/.ssh/authorized_keys
# 将上传的公钥添加到authorized_keys后面
cat ~/.ssh/id_rsa.pub_192.168.1.104 >> ~/.ssh/authorized_keys
# 修改authorized_keys权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
# 查看authorized_keys最后一行
tail -1 ~/.ssh/authorized_keys

1.4 使用密钥对登录

在客户机上,可以直接使用命令ssh 192.168.1.103进行登录,而不需要输入用户名与密码了

2 远程执行命令

http://www.cnblogs.com/ilfmonday/p/ShellRemote.html

2.1 简单命令

双引号,必须有。如果不加双引号,第二个命令在本地执行
分号,两个命令之间用分号隔开

ssh [email protected]192.168.1.103 "cd ~ ; touch ssh.txt"

2.2 使用脚本执行多命令

#!/bin/bash
ssh [email protected] > /dev/null 2>&1 << sshoff
    cd ~
    touch autossh.txt
exit
sshoff

echo "done!"

远程执行的内容在<< sshoff 至sshoff之间,在远程机器上的操作就位于其中
注意的点
sshoff可以随便修改成其他形式
重定向目的在于不显示远程的输出了
在结束前,加exit退出远程节点

时间: 2024-08-25 12:20:33

s15day14 ssh秘钥远程连接的相关文章

使用 SSH 秘钥远程连接

团队开发中常用到 Git.SVN 等版本控制工具,可以大大提高开发效率. 就是将代码统一放到一个代码仓库中,方便管理. 为了安全起见,每次push.pull 代码的时候,都需要输入用户名.密码, 对于需要频繁提交代码或者在代码中远程连接的场合很不方便. 这个时候可以通过 ssh 建立两台服务器之间的长期有效连接,不再需要每次都验证密码. 1.生成公钥.秘钥对 执行 ssh-keygen 会在 .ssh/ 目录下生成 id_rsa  id_rsa.pub 两个文件. 2.将 id_rsa.pub

ssh、scp免秘钥远程执行命令:expect

首先安装expect # yum -y install expect 命令格式 # ./expect IP COMM    #expect是独立的工具,所以不能用sh来执行 #!/usr/bin/expect set timeout -1    #超时时间默认10秒,如果你要执行一条很漫长的命令,那么这个很有必要,这里将超时时间设置为永不超时 set COMMADN1 [lindex $argv 0]    #传参变量,这里引用脚本后面的第一个参数 set COMMADN2 [lindex $a

ssh秘钥登录

自己在网上找ssh秘钥登录的教程,发现写的都不符合我迷糊的那一点:然后自己查man帮助. 刚开始的时候不知道Linux如何充当SSH client,然后自己已解决,解决见下 本地生成密钥(public key 和 private key).其中,public key存放在欲登录的服务器上,而privatekey为特定的客户机所持有. 当客户机向服务器发出建立安全连接的请求时,首先发送自己的public key,如果这个public key是被服务器所允许的,服务器就发送一个经过public ke

WSL、Git on Windows 、Putty等的创建的rsa秘钥与连接linux的使用。

1. 在windows 上面可以使用多种方式创建公钥和私钥 这里从一开始说: 1.1 windows subsystem linux 的方式最简单了 cmd 命令行 下 进入 WSL 输入命令 bash 然后 输入 ssh-keygen 创建私钥创建一个 证书存放位置. 然后就可以生成了 如上就是简单生成的 私钥 (这个秘钥对我来说没用.) 其实可以看一下 ssh-copy-id 的默认文件总是去找 /root/.ssh 目录下面的 其实 我这个证书秘钥文件 是当时我学习git 时 用git创建

ansible 批量推送ssh秘钥

ansible 批量推送ssh秘钥 参考:http://docs.ansible.com/ansible/authorized_key_module.html # vi /etc/ansible/hosts [caoguo] 192.168.88.154 ansible_ssh_user=root ansible_ssh_pass=toor ansible_ssh_port=22 [[email protected] ansible]# ssh-keygen Generating public/

ssh秘钥交换详解与实现 diffie-hellman-group-exchange-sha

ssh的DH秘钥交换是一套复合几种算法的秘钥交换算法.在RFC4419中称为diffie-hellman-groupX-exchange-shaX 的算法(也有另一种单纯的 rsaX-shaX 交换算法).本文就以diffie-hellman-group-exchange-sha256为例,详尽地讲解整个完整的秘钥交换过程. 笔者在RFC上和网上看了很久,也只是做了一个大致了解,对实现的帮助不大.实际在实现过程中,有太多的细节需要注意,在很多细节的分歧中,需要自己抱着勇气去测试.(原谅我不看op

Docker运行MongoDB及Redis及ssh端口映射远程连接

Docker运行MongoDB及Redis及ssh端口映射远程连接 本节内容简介 在本实验里我们将通过完成 MongoDB 和 Redis 两个容器来学习Dockerfile及Docker的运行机制. 本节中,我们需要依次完成下面几项任务: MongoDB 的安装及配置 Redis 的安装及配置 Dockerfile 的编写 从 Dockerfile 构建镜像 本次实验的需求是完成 Dockerfile,通过 Dockerfile 创建 MongoDB 或 Redis 应用.Dockerhub上

GIT文件的三种状态 &amp; Git SSH秘钥问题

一:GIT文件的三种状态 1-- 在目录下新建README.txt文件,接着,使用"git status"查看文件状态,如 可以看到,Git友好的标示出README.txt为"Untracked files",并且提示使用"git add <file>..."的命令将文件包含到待提交清单中. 2-- 按照提示,使用"git add README.txt"命令,然后,使用"git status"查

Ansible推送ssh秘钥

一.系统环境和安装软件版本1),系统安装[[email protected] ~]# cat /etc/issueCentOS release 6.5 (Final)[[email protected] ~]# uname -r2.6.32-431.el6.x86_642)4台主机Ansible(192.168.0.22)另外3台主机IP分别是(192.168.0.24,192.168.0.156和192.168.0.157)3)安装YUM源[[email protected] ~]# rpm