ssh learning
本文最后更新于:2022年11月20日 下午
SSH登录
ssh user@hostname
user
:用户名hostname
:IP地址或域名
之后电脑会将该服务器的信息记录在~/.ssh/known_hosts
文件中
登录某一特定端口:
ssh user@hostname -p 22
配置文件
防止每次登录ssh都需要输入一遍user@hostname
,ip不容易记忆
创建文件~/.ssh/config
然后在文件中输入:
1 |
|
之后再使用服务器时,可以直接使用别名myserver1、myserver2
注意这是使用ssh登录的操作,与使用ssh进行远程git仓库的认证相区分开。
密钥登录
防止每次登录都需要输入密码
创建密钥:
ssh-keygen
然后一直回车即可。
执行结束后,~/.ssh/
目录下会多两个文件:
id_rsa
:私钥id_rsa.pub
:公钥
将公钥中的内容,复制到服务器中的~/.ssh/authorized_keys
文件里即可
一键添加公钥:
ssh-copy-id -i "filepath" myserver
配置git&github
传输文件时,需要使用ssh去与远程git服务器相认证。
同样需要生成密钥和公钥
下面两种算法比较常见
1 |
|
1 |
|
之后,需要在本地~/.ssh/config
配置
1 |
|
- HostName:填写托管平台服务地址;
- Host:填写别名,方便命令行使用;
- IdentityFile:填写证书位置,即使用本地哪个私钥与服务器对接;
在日常推拉代码工作时,获取代码库的 ssh 克隆地址后,因为本地有多个账号,可以手动选择使用哪个账号操作。
git@blogOasis:username/repoName
git@main-voice:username/repoName
可使用以下命令查看当前使用的密钥对应的账号
1 |
|
传输文件
基本用法:
scp source destination
如果传输到远程,注意加上meserver:(冒号)
路径问题:
scp -r ~/tmp myserver:/home/acs/
服务器后加/,代表绝对路径
如果不加/,代表相对于~/的相对路径
最后的/,看情况加,有时候报错是一个文件夹,无法传输,把/去掉即可
终端tips
复制内容:开头点一下,按住shift,结尾点一下即可
Ref
https://help.aliyun.com/document_detail/322237.html?userCode=okjhlpr5