Come discusso nell'altra risposta, quando un client SSH si connette al server OpenSSH, il server OpenSSH generalmente avvia una sessione di shell per conto del client, utilizzando la shell di login dell'utente:
- Se il client richiede una sessione interattiva, il server avvierà la shell di login dell'utente.
- Se il client richiede l'esecuzione di un comando, il server utilizzerà la shell di login dell'utente per eseguire il comando come comando di shell.
- Utilità come
scp
,rsync
egit
che usano ssh per il trasporto richiederanno l'esecuzione di un comando sul sistema remoto, quindi rientrano nella posizione n. 2.
Se hai qualcosa nei file di avvio della shell dell'utente remoto che causa l'uscita dalla shell, allora avrai problemi ad entrare.
SFTP tuttavia è un caso speciale. Il server OpenSSH può essere configurato per supportare SFTP senza avviare un comando esterno. Se in tal caso, potrai utilizzare sftp per connetterti al server ed eliminare, rinominare o modificare il .bashrc
file che causa il problema.
Dipende da come è configurato il server per supportare sftp. Può servire sessioni sftp avviando un programma esterno (denominato sftp-server
). In questo caso avresti lo stesso problema di accesso che hai con programmi come scp
. Oppure, il server può servire la sessione sftp tramite qualcosa denominato "internal-sftp", che non richiede l'invocazione di una shell. Dipende solo da come è configurato il particolare server SSH.