title: How to login by ssh in Alpine Linux without passwords?
body: <p>I'm using a Android cell phone. I write python program and run the program in Termux. But there some lib can't be installed or use in Android cell phone, sklearn and tensorflow for example. So I decided to try to use a docker container for my programing envirment.
  I create a docker image and update it to docker-hub: zwdnet/mypython. Then I installed qemu in Termux，and installed Alpine Linux (alpine-virt-3.10.1-x86_64) in Termux. I followed this pages' method(It is a Chinese blog, not English):  <a href="https://stageguard.top/2019/08/15/run-docker-on-qemu-alpine/#1-Docker" rel="nofollow noreferrer">https://stageguard.top/2019/08/15/run-docker-on-qemu-alpine/#1-Docker</a>
  After this, I use the command</p>
  
  <pre><code>qemu-system-x86_64 -hda python.img -boot c -m 4096 -netdev user,id=nde1,hostfwd=tcp::2222-:22 -device e1000,netdev=nde1,id=d-net1 -nographic &amp;
  </code></pre>
  
  <p>start the alpine linux in back and</p>
  
  <pre><code>ssh root@localhost -p 2222
  </code></pre>
  
  <p>login. (After then I installed the docker and run the container success, that is another question.)
  Now I want to login Apline linux without enter the passwords.
  First I use</p>
  
  <pre><code>ssh-keygen -t rsa
  </code></pre>
  
  <p>generate the key, and use</p>
  
  <pre><code>ssh-copy-id -i ./mykey.pub root@localhost -P 2222
  </code></pre>
  
  <p>to sent the pub key to the Apline linux and changed the /etc/ssh/sshd_config file.
  At last I restarted the sshd service and logout.
  But when I login again, It is ask me to enter the password again.
  I thought maybe that is because I login in with root. So I login and create a new username, and repeat the ahead operators. But I failed. The ssh ask me to enter password again.
  This is my mod of ~/.ssh and the key files.</p>
  
  <pre><code>$ssh zym@localhost -p 2222 "ls -la"
  zym@localhost's password:
  total 20
  drwxr-sr-x    3 1000     zym           4096 May 16 15:04 .
  drwxr-xr-x    3 root     root          4096 May 16 14:44 ..
  -rw-------    1 1000     zym            251 May 16 15:04 .ash_history
  drwx------    2 1000     zym           4096 May 16 14:56 .ssh
  -rw-------    1 root     zym            883 May 16 15:04 .viminfo
  $ ssh zym@localhost -p 2222 "ls -la .ssh"
  zym@localhost's password:
  total 12
  drwx------    2 1000     zym           4096 May 16 14:56 .
  drwxr-sr-x    3 1000     zym           4096 May 16 15:04 ..
  -rw-------    1 root     zym            571 May 16 14:56 authorized_keys
  </code></pre>
  
  <p>and this is my /etc/ssh/sshd_config file:</p>
  
  <pre><code># $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
  
  # This is the sshd server system-wide configuration file.  See
  # sshd_config(5) for more information.
  
  # This sshd was compiled with PATH=/bin:/usr/bin:/sbin:/usr/sbin
  
  # The strategy used for options in the default sshd_config shipped with
  # OpenSSH is to specify options with their default value where
  # possible, but leave them commented.  Uncommented options override the
  # default value.
  
  #Port 22
  #AddressFamily any
  #ListenAddress 0.0.0.0
  #ListenAddress ::
  
  #HostKey /etc/ssh/ssh_host_rsa_key
  #HostKey /etc/ssh/ssh_host_ecdsa_key
  #HostKey /etc/ssh/ssh_host_ed25519_key
  
  # Ciphers and keying
  #RekeyLimit default none
  
  # Logging
  #SyslogFacility AUTH
  #LogLevel INFO
  
  # Authentication:
  
  #LoginGraceTime 2m
  PermitRootLogin yes
  #StrictModes yes
  #MaxAuthTries 6
  #MaxSessions 10
  
  PubkeyAuthentication yes
  
  # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
  # but this is overridden so installations will only check .ssh/authorized_keys
  AuthorizedKeysFile .ssh/authorized_keys
  
  #AuthorizedPrincipalsFile none
  
  #AuthorizedKeysCommand none
  #AuthorizedKeysCommandUser nobody
  
  # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
  #HostbasedAuthentication no
  # Change to yes if you don't trust ~/.ssh/known_hosts for
  # HostbasedAuthentication
  #IgnoreUserKnownHosts no
  # Don't read the user's ~/.rhosts and ~/.shosts files
  #IgnoreRhosts yes
  
  # To disable tunneled clear text passwords, change to no here!
  PasswordAuthentication yes
  #PermitEmptyPasswords no
  
  # Change to no to disable s/key passwords
  #ChallengeResponseAuthentication yes
  
  # Kerberos options
  #KerberosAuthentication no
  #KerberosOrLocalPasswd yes
  #KerberosTicketCleanup yes
  #KerberosGetAFSToken no
  
  # GSSAPI options
  #GSSAPIAuthentication no
  #GSSAPICleanupCredentials yes
  
  # Set this to 'yes' to enable PAM authentication, account processing,
  # and session processing. If this is enabled, PAM authentication will
  # be allowed through the ChallengeResponseAuthentication and
  # PasswordAuthentication.  Depending on your PAM configuration,
  # PAM authentication via ChallengeResponseAuthentication may bypass
  # the setting of "PermitRootLogin without-password".
  # If you just want the PAM account and session checks to run without
  # PAM authentication, then enable this but set PasswordAuthentication
  # and ChallengeResponseAuthentication to 'no'.
  #UsePAM no
  
  #AllowAgentForwarding yes
  # Feel free to re-enable these if your use case requires them.
  AllowTcpForwarding no
  GatewayPorts no
  X11Forwarding no
  #X11DisplayOffset 10
  #X11UseLocalhost yes
  #PermitTTY yes
  #PrintMotd yes
  #PrintLastLog yes
  #TCPKeepAlive yes
  #PermitUserEnvironment no
  #Compression delayed
  #ClientAliveInterval 0
  #ClientAliveCountMax 3
  #UseDNS no
  #PidFile /run/sshd.pid
  #MaxStartups 10:30:100
  #PermitTunnel no
  #ChrootDirectory none
  #VersionAddendum none
  
  # no default banner path
  #Banner none
  
  # override default of no subsystems
  Subsystem sftp /usr/lib/ssh/sftp-server
  
  # Example of overriding settings on a per-user basis
  #Match User anoncvs
  # X11Forwarding no
  # AllowTcpForwarding no
  # PermitTTY no
  # ForceCommand cvs server
  </code></pre>
  
  <p>The login information is </p>
  
  <pre><code>$ ssh zym@localhost -p 2222 -v
  OpenSSH_8.2p1, OpenSSL 1.1.1g  21 Apr 2020
  debug1: Reading configuration data /data/data/com.termux/files/usr/etc/ssh/ssh_config
  debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
  debug1: Connecting to localhost [127.0.0.1] port 2222.
  debug1: Connection established.
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_rsa type 0
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_rsa-cert type -1
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_dsa type -1
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_dsa-cert type -1
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_ecdsa type -1
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_ecdsa-cert type -1
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_ecdsa_sk type -1
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_ecdsa_sk-cert type -1
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_ed25519 type -1
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_ed25519-cert type -1
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_ed25519_sk type -1
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_ed25519_sk-cert type -1
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_xmss type -1
  debug1: identity file /data/data/com.termux/files/home/.ssh/id_xmss-cert type -1
  debug1: Local version string SSH-2.0-OpenSSH_8.2
  debug1: Remote protocol version 2.0, remote software version OpenSSH_8.1
  debug1: match: OpenSSH_8.1 pat OpenSSH* compat 0x04000000
  debug1: Authenticating to localhost:2222 as 'zym'
  debug1: SSH2_MSG_KEXINIT sent
  debug1: SSH2_MSG_KEXINIT received
  debug1: kex: algorithm: curve25519-sha256
  debug1: kex: host key algorithm: ecdsa-sha2-nistp256
  debug1: kex: server-&gt;client cipher: chacha20-poly1305@openssh.com MAC: &lt;implicit&gt; compression: none
  debug1: kex: client-&gt;server cipher: chacha20-poly1305@openssh.com MAC: &lt;implicit&gt; compression: none
  debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
  debug1: Server host key: ecdsa-sha2-nistp256 SHA256:Vwx+lpRpyl04g5gaO73Es9C1IslCcD7f9CUfBFyi96M
  debug1: Host '[localhost]:2222' is known and matches the ECDSA host key.
  debug1: Found key in /data/data/com.termux/files/home/.ssh/known_hosts:3
  debug1: rekey out after 134217728 blocks
  debug1: SSH2_MSG_NEWKEYS sent
  debug1: expecting SSH2_MSG_NEWKEYS
  debug1: SSH2_MSG_NEWKEYS received
  debug1: rekey in after 134217728 blocks
  debug1: Will attempt key: /data/data/com.termux/files/home/.ssh/id_rsa RSA SHA256:l/1hMa3CC1MHkHsJT6R7CRZJzYEXU
  debug1: Will attempt key: /data/data/com.termux/files/home/.ssh/id_dsa
  debug1: Will attempt key: /data/data/com.termux/files/home/.ssh/id_ecdsa
  debug1: Will attempt key: /data/data/com.termux/files/home/.ssh/id_ecdsa_sk
  debug1: Will attempt key: /data/data/com.termux/files/home/.ssh/id_ed25519
  debug1: Will attempt key: /data/data/com.termux/files/home/.ssh/id_ed25519_sk
  debug1: Will attempt key: /data/data/com.termux/files/home/.ssh/id_xmss
  debug1: SSH2_MSG_EXT_INFO received
  debug1: kex_input_ext_info: server-sig-algs=&lt;ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-&gt;
  debug1: SSH2_MSG_SERVICE_ACCEPT received
  debug1: Authentications that can continue: publickey,password,keyboard-interactive
  debug1: Next authentication method: publickey
  debug1: Offering public key: /data/data/com.termux/files/home/.ssh/id_rsa RSA SHA256:l/1hMa3CC1MHkHsJT6R7CRZJzU
  debug1: Authentications that can continue: publickey,password,keyboard-interactive
  debug1: Trying private key: /data/data/com.termux/files/home/.ssh/id_dsa
  debug1: Trying private key: /data/data/com.termux/files/home/.ssh/id_ecdsa
  debug1: Trying private key: /data/data/com.termux/files/home/.ssh/id_ecdsa_sk
  debug1: Trying private key: /data/data/com.termux/files/home/.ssh/id_ed25519
  debug1: Trying private key: /data/data/com.termux/files/home/.ssh/id_ed25519_sk
  debug1: Trying private key: /data/data/com.termux/files/home/.ssh/id_xmss
  debug1: Next authentication method: keyboard-interactive
  debug1: Authentications that can continue: publickey,password,keyboard-interactive
  debug1: Next authentication method: password
  zym@localhost's password:
  </code></pre>
  
  <p>I copyed the mykey and mykey.pub to /data/data/com.termux/files/home/.ssh/ , no use.
  Could you please help me to see how to sovle this problem? Thanks!
  I'm a Chinese and my English is poor. Please forgive me for the words errors.</p>
  
  <p>Thanks @MarcoLucidi ,but the -i in ssh dose not work.</p>
  
  <pre><code>$ ssh -i ./mykey -p 2222 zym@localhost -v
  OpenSSH_8.2p1, OpenSSL 1.1.1g  21 Apr 2020
  debug1: Reading configuration data /data/data/com.termux/files/usr/etc/ssh/ssh_config
  debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
  debug1: Connecting to localhost [127.0.0.1] port 2222.
  debug1: Connection established.
  debug1: identity file ./mykey type 0
  debug1: identity file ./mykey-cert type -1
  debug1: Local version string SSH-2.0-OpenSSH_8.2
  debug1: Remote protocol version 2.0, remote software version OpenSSH_8.1
  debug1: match: OpenSSH_8.1 pat OpenSSH* compat 0x04000000
  debug1: Authenticating to localhost:2222 as 'zym'
  debug1: SSH2_MSG_KEXINIT sent
  debug1: SSH2_MSG_KEXINIT received
  debug1: kex: algorithm: curve25519-sha256
  debug1: kex: host key algorithm: ecdsa-sha2-nistp256
  debug1: kex: server-&gt;client cipher: chacha20-poly1305@openssh.com MAC: &lt;implicit&gt; compression: none
  debug1: kex: client-&gt;server cipher: chacha20-poly1305@openssh.com MAC: &lt;implicit&gt; compression: none
  debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
  debug1: Server host key: ecdsa-sha2-nistp256 SHA256:Vwx+lpRpyl04g5gaO73Es9C1IslCcD7f9CUfBFyi96M
  debug1: Host '[localhost]:2222' is known and matches the ECDSA host key.
  debug1: Found key in /data/data/com.termux/files/home/.ssh/known_hosts:3
  debug1: rekey out after 134217728 blocks
  debug1: SSH2_MSG_NEWKEYS sent
  debug1: expecting SSH2_MSG_NEWKEYS
  debug1: SSH2_MSG_NEWKEYS received
  debug1: rekey in after 134217728 blocks
  debug1: Will attempt key: ./mykey RSA SHA256:4rVLy6uWZoHmCMqYYyaASSV2iaoIdIbvIDtA1EBNuW0 explicit
  debug1: SSH2_MSG_EXT_INFO received
  debug1: kex_input_ext_info: server-sig-algs=&lt;ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-&gt;
  debug1: SSH2_MSG_SERVICE_ACCEPT received
  debug1: Authentications that can continue: publickey,password,keyboard-interactive
  debug1: Next authentication method: publickey
  debug1: Offering public key: ./mykey RSA SHA256:4rVLy6uWZoHmCMqYYyaASSV2iaoIdIbvIDtA1EBNuW0 explicit
  debug1: Authentications that can continue: publickey,password,keyboard-interactive
  debug1: Next authentication method: keyboard-interactive
  debug1: Authentications that can continue: publickey,password,keyboard-interactive
  debug1: Next authentication method: password
  zym@localhost's password:
  </code></pre>