ssh 使用


SSH全称 secure shell, 是一种加密的网络传输协议, 是telnet的替代品, 本文主要简单地介绍一下 ssh 常见的用法, 一下用法据需要服务器端配置了 openssh 且允许用户访问, 访问的用户名和密码均是服务器内的用户, 而不是本地用户.

SSH 连接远程服务器

这应该是ssh最普遍是使用方式了, 通过

ssh [OPTIONS] [-p PORT] [User@]hostname [COMMAND]
#User 是用户名, hostname是域名或者IPv4地址, -p后面跟端口号, 默认是22

免密登录

直接通过这种方式登录, 依然需要输入用户密码来登录, 可以使用 rsa 密码, 来配置免密登录:

第一步: 生成rsa密钥(公钥+私钥)

ssh-keygen [OPTIONS]
#常用的参数有 -t(type) 指定生成密钥类型, 这里我们使用 rsa; -b(bits) 生成密钥的长度; -C(comments) 添加注释, 通常会在这添加邮箱等标识
ssh-keygen -t rsa -b 2048 -C "example@mail.com"

第二步: 将生成的公钥id_rsa.pub上传到服务器 本质上是将公钥复制到服务器的 .ssh/authorized_keys 中, 可以使用ssh-copy-id [-p port] [user@]hostname或者自行复制id_rsa.pub复制到 .ssh/authorized_keys

  • 注意不要将私钥上传!!

为服务器设置别名

类似于 linux 中在*.bashrc中配置 alias 在本地的.ssh文件中编辑config*文件(没有就创建一个touch .ssh/config) config文件内格式如下

Host 别名
	User 用户名
	Port 连接端口(默认22)
	Hostname 域名或IPv4地址
	IdentityFile 私钥文件位置, 如果在默认位置, 此行不必配置

举个栗子

Host workspace
	User kylezhang
	Hostname kyleten.top

设置完成后, 以后通过ssh连接服务器可以使用ssh workspace就会用config中的配置来登录了

scp 传输文件

如果想用命令行直接复制小文件, 可以使用scp source destination命令, 如 服务器别名为Helloworld, 我们想将服务器当前用户家目录下的*.viminfo*文件传输至本地当前目录可以使用一下命令

scp Helloword:~/.viminfo .

当然如果传输大文件也可以搭配tmuxscreen等使用, 或者直接使用SFTP进行文件传输