SSH

SSH

[TOC]

什么是SSH Key?

SSH全称Secure SHell,即十分安全的Shell,是IETF(Internet Engineering Task Force)的Network Working Group所制定的一种协议,用来取代传统的telnet和R系列命令(rlogin,rsh,rexec等)远程登陆和远程执行命令的工具,实现对远程登陆和远程执行命令加密。防止由于网络监听而出现的密码泄漏,对系统构成威胁。

SSH协议目前有SSH1、SSH2两个版本,SSH2兼容SSH1,目前的实现主要有

OpenSSHOpenBSD组织 开发 免费软件

SSH CommunicationsSSH Communications Security Corporation 开发 商业软件

OpenSSH 因为免费,所以广泛使用于开源系统中,如Linux,其软件组成为

sshd ——SSH服务端程序

sftp-server ―― SFTP服务端程序(类似FTP但提供数据加密的一种协议)

scp ―― 非交互式sftp-server的客户端,用来向服务器上传/下载文件

sftp ―― 交互式sftp-server客户端,用法和ftp命令一样。

slogin ―― ssh的别名

ssh ―― SSH协议的客户端程序,用来登入远程系统或远程执行命令

ssh-add ―― SSH代理相关程序,用来向SSH代理添加dsa key

ssh-agent ―― ssh代理程序

ssh-keyscan ―― ssh public key 生成器

什么是 known_hosts?

位置在 ~/.ssh/konwn_hosts

第一次ssh登录后,ssh会把登录的ssh指纹(fingerprint)存放在用户目录的.ssh/know_hosts中,如果远程系统重装过,ssh指纹会改变,需要删除后,重新进行登录。

记录链接到对方时,对方给的host key,每次连线都会检查目前对方给的host key 与你记录的host key是否相同,进行简单的验证。

重装服务器时,需要先进入自己电脑的 ~/.ssh/konwn_hosts 删除原有的服务器的host key

如何生成SSH Key?

检查SSH Key是否存在?

ls -al ~/.ssh
# 查看是否存在 ssh key

生成新的SSH Key

ssh-keygen -t rsa -C "邮箱"

默认在相应路径下生成,即: /root/.ssh/

系统会询问你 是否修改路径?输入密码?确认密码? 三个问题都可以敲空格飘过

随后,在/root/.ssh/下会生成两个文件,分别是公钥 id_rsa.pub ,私钥 id_rsa

注意点

.ssh目录权限是 ssh-keygen自己生成的不要乱改,这些权限不能多也不能少,少了则无法使用,多了则不安全

.ssh目录权限是700

id_rsa 权限是600

authorized_keys 权限是 644

如果你需要登陆服务器并执行不止一个命令,必须要把命令用单引号或双引号引起来:
ssh 172.18.6.227 “cd /root && ls “

参考文献

[1] minmig,ssh key 免密码登录[EB/OL] http://blog.chinaunix.net/uid-773723-id-152230.html

[2] Jackie li,linux ssh 使用深度解析(key登录详解)[EB/OL] http://blog.lizhigang.net/archives/249

你可能感兴趣的:(SSH)