Czy można utworzyć skrypt, który wykonuje te same polecenia, które wykonuje FileZilla podczas łączenia się z serwerem ssh?
Kiedy loguję się ręcznie za pomocą FileZilla, pojawia się następujący komunikat dla następujących typów połączeń:
The server's host key is unknown. You have no guarantee that the server is the
computer you think it is.
Host: securedomain_1.com:22
Fingerprint: ssh-dss 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Host: securedomain_2.com:22
Fingerprint: ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Host: securedomain_3.com:22
Fingerprint: ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Trust this host and carry on connecting?
[ ] Always trust this host, add this key to the cache.
[OK] [CANCEL]
Klikam OK i NIE dodam klucza do pamięci podręcznej ...
Kiedy loguję się ręcznie, są to polecenia, które wykonuje FileZilla:
Status: Connecting to my.secure.site.com...
Response: fzSftp started
Command: open "[email protected]" 22
[asks for key...]
[I manually click OK]
Command: Trust new Hostkey: Once
Command: Pass: ********
Status: Connected to my.secure.site.com
Status: Retrieving directory listing...
Command: cd "/SFTP/DIR"
Response: New directory is: "/SFTP/DIR"
Command: ls
Status: Listing directory /SFTP/DIR
Status: Calculating timezone offset of server...
Command: mtime "IN"
Response: 1412312345
Status: Timezone offsets: Server: -18000 seconds. Local: -18000 seconds. Difference: 0 seconds.
Status: Directory listing successful
Co dokładnie się dzieje, gdy kliknę przycisk OK, aby „Ufać temu hostowi i kontynuować nawiązywanie połączenia”?
Czy akceptuję klucz z serwera SSH?
To byłoby dla komputera z systemem Windows. Myślałem o użyciu WinSCP, ale chciałbym zrozumieć, co się dzieje, gdy łączę się z tymi serwerami. Mam kilka skryptów przeznaczonych dla FTPS, które nie działają w przypadku tych serwerów.
Odpowiedzi:
Podczas łączenia się z serwerem SSH musisz sprawdzić, czy ufasz kluczowi hosta serwera . Ma to na celu zapobieganie atakowi typu man-in-the-middle .
W skryptach WinSCP weryfikujesz klucz hosta za pomocą
-hostkey
przełącznikaopen
polecenia.Odnośniki: Gdzie mogę uzyskać odcisk palca klucza hosta SSH w celu autoryzacji serwera?
Istnieje przewodnik, jak przekonwertować skrypt Windows FTP na skrypt WinSCP SFTP .
Uwaga dotycząca poleceń w dzienniku FileZilla: Te polecenia są zastrzeżonymi poleceniami
psftp
(tego, co FileZilla wykorzystuje wewnętrznie do implementacji protokołu SFTP). Nie mają one nic wspólnego z protokołami SFTP ani SSH jako takimi. Oczywiście wszystkie mapują wewnętrznie na niektóre żądania SFTP i można je emulować za pomocą skryptów WinSCP. Ale polecenia WinSCP byłyby inne. Należy również pamiętać, że SFTP, w przeciwieństwie do FTP to protokół binarny, więc nie ma żadnego tekstu komend jak w FTP (cd
,pwd
etc.)źródło
-hostkey=""
cała „odcisk palca” informacje, które są wyświetlane w wierszu FileZilla? czy wiesz też, czy mogę przetestować „połączenia ssh” za pomocą openssh, generując klucz w systemie Linux, a następnie używając skryptu WinSCP + w systemie Windows? używam linuxa w virtualbox do pisania skryptów w Pythonie, więc jestem zaznajomiony z linux / ftp, ale chciałbym przeprowadzić autotest, zanim zacznę próbować trafić na rzeczywisty serwer produkcyjny (nie mój).ssh-dss/ssh-rsa key_size
przedrostka.