UseDNS default changed to no, locking out authorized_keys from="hostname" users when upgrading to Xenial
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Release Notes for Ubuntu |
Fix Released
|
Undecided
|
Unassigned | ||
openssh (Ubuntu) |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
[Impact]
When a user has configured their authorized_keys file with the directive "from=" to restrict the usage of those keys, if that server is upgraded to Xenial (or Wily) the user may get locked out.
[Test Case]
* Create 3 containers (client, trusty, xenial)
$ lxc launch ubuntu:14.04 client
$ lxc launch ubuntu:14.04 ssh-trusty
$ lxc launch ubuntu:16.04 ssh-trusty
* To make sure their hostnames are properly registered in dnsmasq and dns resolution works, ssh into each container and run "sudo reboot" (restart the network should do the trick too)
* In the 'client' container generate a ssh key
$ lxc exec client /bin/bash
(client)# ssh-keygen
* Add the ssh key in the other two containers for the user ubuntu
* Verify a connection can be established from client to ssh-xenial and ssh-trusty
(client)# ssh ssh-xenial
(client)# ssh ssh-trusty
* Edit in add the prefix from="client.lxd" in both containers authorized_keys file (ssh-xenial and ssh-trusty)
* Check if you can connect
(client)# ssh ssh-trusty
(client)# ssh ssh-xenial
Expected:
you can connect to both containers
Actual results:
You can connect to the trusty server, but you can't to the xenial one, because since Wily (openssh 1:6.9p1-1[0] ) the configuration key UseDNS default changed from "yes" to "no", so sshd is not doing a reverse dns request to know if the incoming connection matched "client.lxd"
[Workaround]
Edit /etc/ssh/
$ echo "UseDNS yes" | sudo tee -a /etc/ssh/
[More Info]
Relevant portion from the manpage[1]:
UseDNS Specifies whether sshd(8) should look up the remote host name,
and to check that the resolved host name for the remote IP
If this option is set to “no” (the default) then only addresses
and not host names may be used in ~/.ssh/known_hosts from and
commit 3cd5103c1e1aaa5
Author: <email address hidden> <email address hidden>
Date: Mon Feb 2 01:57:44 2015 +0000
upstream commit
increasing encounters with difficult DNS setups in
darknets has convinced me UseDNS off by default is better ok djm
[0] http://
[1] http://
[2] https:/
summary: |
- authorized_keys using from="hostnamee" no longer work when upgrading to + authorized_keys using from="hostname" no longer work when upgrading to Xenial |
description: | updated |
summary: |
- authorized_keys using from="hostname" no longer work when upgrading to - Xenial + UseDNS default changed to no, locking out authorized_keys + from="hostname" users when upgrading to Xenial |
Changed in ubuntu-release-notes: | |
status: | New → Fix Released |
I'm filing this bug as way to document this change in the behavior and how to restore trusty's behavior, but also to get feedback from Foundations if this is something that could be fixed in the distro when a openssh-server is being upgraded from older versions.