Połączenie główne
Najłatwiej jest to zaplanować z wyprzedzeniem.
Otwórz połączenie główne za pierwszym razem. W przypadku kolejnych połączeń trasuj połączenia podrzędne przez istniejące połączenie główne. W swoim ~/.ssh/config
ustaw, aby udostępnianie połączenia odbywało się automatycznie:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Jeśli rozpoczniesz sesję ssh do tego samego (użytkownika, portu, komputera) co istniejące połączenie, druga sesja zostanie tunelowana w pierwszej. Nawiązanie drugiego połączenia nie wymaga nowego uwierzytelnienia i jest bardzo szybkie.
Więc mając aktywne połączenie, możesz szybko:
Przekierowanie
W istniejącym połączeniu możesz ustanowić tunel zwrotny ssh. W wierszu polecenia ssh utwórz zdalne przekazywanie, przekazując -R 22042:localhost:22
gdzie 22042 to losowo wybrany numer, który różni się od dowolnego innego numeru portu na zdalnej maszynie. Następnie ssh -p 22042 localhost
na komputerze zdalnym łączy się z powrotem z maszyną źródłową; możesz użyć scp -P 22042 foo localhost:
do skopiowania plików.
Możesz to zautomatyzować za pomocą RemoteForward 22042 localhost:22
. Problem polega na tym, że jeśli łączysz się z tym samym komputerem z wieloma instancjami ssh lub jeśli ktoś inny korzysta z portu, nie otrzymujesz przekierowania.
Jeśli nie włączyłeś zdalnego przekazywania od samego początku, możesz to zrobić w istniejącej sesji ssh. Typ Enter ~C
Enter -R 22042:localhost:22
Enter. Aby uzyskać więcej informacji, zobacz „Znaki specjalne” w instrukcji.
W tym wątku dotyczącym awarii serwera znajduje się również kilka interesujących informacji .
Kopiuj wklej
Jeśli plik jest mały, możesz go wpisać i skopiować i wkleić z wyjścia terminala. Jeśli plik zawiera znaki niedrukowalne, użyj kodowania takiego jak base64 .
remote.example.net $ base64 <mój_plik
(skopiuj dane wyjściowe)
local.example.net $ base64 -d> mój plik
(wklej zawartość schowka)
Ctrl +D
Wygodniej, jeśli masz aktywne przekazywanie X, skopiuj plik na zdalnym komputerze i wklej go lokalnie. Możesz przesyłać dane do i z xclip
lub z xsel
. Jeśli chcesz zachować nazwę pliku i metadane, skopiuj i wklej archiwum.
remote.example.net$ tar -czf - myfile | xsel
local.example.net$ xsel | tar -xzf -
scp file.foo user@myclient.com:file.foo
: P