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 .
当然如果传输大文件也可以搭配tmux
或screen
等使用, 或者直接使用SFTP进行文件传输