1
import paramiko

host = "172.21.14.48"
port = 22
username = "user"
password = "xxx*9841"
command = "ls"
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, port, username, password )
stdin, stdout, stderr = ssh.exec_command(command)
lines = stdout.readlines()
print(lines)

This Code works SSH successful. But i need to ssh to cp@172.21.14.48 with same username and password. I tried below code but getting error.

host = "cp@172.21.14.48"

Error message as: ile "C:\Program Files\Python38\lib\socket.py", line 918, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno 11003] getaddrinfo failed

Any suggestion..? However with putty i can ssh to cp@172.21.14.48.

Nab In
  • 21
  • 6
  • `Using username "cp". Keyboard-interactive authentication prompts from server: | Actual Username: | Actual Password:` – Nab In Jun 15 '21 at 08:28

1 Answers1

1

The cp in the ssh cp@172.21.14.48 is a username, so it goes to the username argument of SSHClient.connect:

username = "cp"
# ...
ssh = paramiko.SSHClient()
ssh.connect(host, port, username, password)

Your server prompts for another set of credentials using keyboard interactive authentication.
For that see: Paramiko/Python: Keyboard interactive authentication
You have to adjust the code to answer both the second username and password prompts. The fields parameter of the handler will have two entries and the handler has to return a two answers in its result.

Martin Prikryl
  • 167,268
  • 50
  • 405
  • 846