Claro, enquanto você estiver em uma instalação recente do OpenSSH no cliente.
Você tem os "tubos de controle" e man ssh_config
mostrará as mágicas .
Basicamente, no cliente, você criaria uma entrada de host em ~/.ssh/config
assim:
Host my_remote_server # a symbolic name of your choice
Hostname server_IP_or_DNS # the real name
User username # the username you use for login
IdentityFile ~/.ssh/a_suitable_ssh_key_if_any # for authentication purposes
ControlMaster auto
ControlPath ~/.ssh/%C # or ~/.ssh/%h-%p-%r for older versions
ControlPersist 5m # or yes for neverexpiring persistent connection
Ao fazer isso, a primeira conexão abrirá um "canal" que será mantido aberto pelo tempo especificado ou para sempre.
De agora em diante, você pode consultar sua conexão ssh
apenas com o nome que você colocou como Host
. Então, por exemplo, em vez de escrever:
vim scp://username@server_IP_or_DNS//full_path/to/file.cpp
você escreverá:
vim scp://my_remote_server//full_path/to/file.cpp
ou
ssh my_remote_server
Para eliminar uma conexão persistente existente, você precisa executar:
ssh -O exit my_remote_server
Tudo isso funcionará também para SSH simples, SCP e SFTP. Isso é tudo.