SSH远程登录教程¶
首次使用:¶
- 远程登录服务器:ssh user@hostname
- 登陆特定端口:ssh user@hostname -p 22
配置免密登陆:¶
配置文件¶
-
本地服务器创建文件 ~/.ssh/config。
-
然后在文件中输入:
-
本地创建密钥:ssh-keygen
- 一键添加密钥:ssh-copy-id myserver 或 公钥写到服务器 ~/.ssh/authorized_keys中
当无法执行ssh-keygen时,需编写内置函数¶
Shell脚本:ssh-copy-id 函数:
function ssh-copy-id([string]$userAtMachine, $args){
$publicKey = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
if (!(Test-Path "$publicKey")){
Write-Error "ERROR: failed to open ID file '$publicKey': No such file"
}
else {
& cat "$publicKey" | ssh $args $userAtMachine "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"
}
}
scp文件远程传递¶
scp start destination: 起始地 -> 目的地
复制文件:¶
scp source1 source2 destination:
: 将source1和source2传入destination中
复制文件夹:¶
指令增加 -r
scp -r dir destination:
: 将dir传入destination中
例:使用scp 从服务器中的复制vim、tmux、bash配件到本地
scp aliyun:~/.vimrc aliyun:~/.tmux.conf aliyun:~/.bashrc .
scp . mysever
: 本地传送到服务器
scp mysever
: . 服务器传送到本地
解决ssh未响应断连问题¶
配置~/.ssh/config
文件,增加以下内容即可:¶
添加在/etc/ssh/ssh_config也是可以
-
方法一:如果您有多台服务器,不想在每台服务器上设置,只需在客户端的 ~/.ssh/ 文件夹中添加 config 文件,并添加下面的配置:
ServerAliveInterval 60
-
方法二:如果您有多个人管理服务器,不想在每个客户端进行设置,只需在服务器的 /etc/ssh/sshd_config 中添加如下的配置:
ClientAliveInterval 60