- Is it correct that the ssh server possesses the public key but not the private key, while the ssh client possesses both the public and private keys?
Sim, se você falar sobre chaves de autenticação . Existem também chaves de host , onde a posse é oposta - o servidor tem ambas e o cliente tem apenas a chave pública.
- When I on ssh client side initiate a communication by running a command to connect to the ssh server via ssh protocal, is this initial message from me to the server encrypted with the public key or private key?
Não. A mensagem inicial não está criptografada. A comunicação posterior, após a troca de chaves, é criptografada com chaves derivadas do segredo compartilhado (chave de sessão), que é um resultado da troca de chaves DH (de algum tipo).
When the ssh server receives this initial message, does it use the public key to decrypt the initial message, which sounds very odd because everyone can have the public key and thus can decrypt the initial message?
A descriptografia é feita usando a chave privada (a verificação da assinatura é feita usando uma pública).
- If the command that I sent to connect to the server is to scp some file from the server to my local host, when the ssh server sends out the requested file to me, is the public key used to encrypt the file?
Não, como no anterior. O arquivo (sessão inteira) é criptografado pela "chave de sessão"
When ssh client receives the encrypted file, is the private key used to decrypt the file?
Não e não.
- Are public and private keys used only during authentication, not after authentication finishes?
Sim
If that's correct, is some type of encryption on messages to be sent and decryption on messages received used for the communication between ssh server and client, after authentication?
Não tenho certeza do que significa essa pergunta. A sessão é criptografada com criptografia simétrica (geralmente AES) com chave secreta obtida da troca de chaves acima.