summaryrefslogtreecommitdiff
path: root/debian/README.Debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian/README.Debian')
-rw-r--r--debian/README.Debian243
1 files changed, 243 insertions, 0 deletions
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644
index 000000000..db867e186
--- /dev/null
+++ b/debian/README.Debian
@@ -0,0 +1,243 @@
1OpenSSH for Debian
2------------------
3
4Although this package is widely referred to as OpenSSH, it is actually
5a branch of an early version of ssh which has been tidied up by the
6OpenBSD folks.
7
8It has been decided that this version should have the privilege of
9carrying the ``ssh'' name in Debian, since it is the only version of
10ssh that is going to make it into Debian proper, being the only one
11that complies with the Debian Free Software Guidelines.
12
13If you were expecting to get the non-free version of ssh (1.2.27 or
14whatever) when you installed this package, then you're out of luck, as
15Debian don't ship it.
16
17=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
18
19BUILD ISSUES
20============
21
22To build the openssh package for woody, set DEB_BUILD_SSH_WOODY=1 in
23your environment. This is necessary due to non-backward-compatible
24changes in PAM support.
25
26=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
27
28UPGRADE ISSUES
29==============
30
31Privilege Separation
32--------------------
33
34As of 3.3, openssh has employed privilege separation to reduce the
35quantity of code that runs as root, thereby reducing the impact of
36some security holes in sshd. This now also works properly with PAM.
37
38Privilege separation is turned on by default, so, if you decide you
39want it turned off, you need to add "UsePrivilegeSeparation no" to
40/etc/ssh/sshd_config.
41
42PermitRootLogin set to yes
43--------------------------
44
45This is now the default setting (in line with upstream), and people
46who asked for an automatically-generated configuration file when
47upgrading from potato (or on a new install) will have this setting in
48their /etc/ssh/sshd_config file.
49
50Should you wish to change this setting, edit /etc/ssh/sshd_config, and
51change:
52PermitRootLogin yes
53to:
54PermitRootLogin no
55
56Having PermitRootLogin set to yes means that an attacker that knows
57the root password can ssh in directly (without having to go via a user
58account). If you set it to no, then they must compromise a normal user
59account. In the vast majority of cases, this does not give added
60security; remember that any account you su to root from is equivalent
61to root - compromising this account gives an attacker access to root
62easily. If you only ever log in as root from the physical console,
63then you probably want to set this value to no.
64
65As an aside, PermitRootLogin can also be set to "without-password" or
66"forced-commands-only" - see sshd(8) for more details.
67
68DO NOT FILE BUG REPORTS SAYING YOU THINK THIS DEFAULT IS INCORRECT!
69
70The argument above is somewhat condensed; I have had this discussion
71at great length with many people. If you think the default is
72incorrect, and feel strongly enough to want to argue with me about it,
73then send me email to matthew@debian.org. I will close bug reports
74claiming the default is incorrect.
75
76SSH now uses protocol 2 by default
77----------------------------------
78
79This means all your keyfiles you used for protocol version 1 need to
80be re-generated. The server keys are done automatically, but for RSA
81authentication, please read the ssh-keygen manpage.
82
83If you have an automatically generated configuration file, and decide
84at a later stage that you do want to support protocol version 1 (not
85recommended, but note that the ssh client shipped with Debian potato
86only supported protocol version 1), then you need to do the following:
87
88Change /etc/ssh/sshd_config such that:
89Protocol 2
90becomes:
91Protocol 2,1
92Also add the line:
93HostKey /etc/ssh/ssh_host_key
94
95If you do not already have an RSA1 host key in /etc/ssh/ssh_host_key,
96you will need to generate one. To do so, run this command as root:
97
98 ssh-keygen -f /etc/ssh/ssh_host_key -N '' -t rsa1
99
100X11 Forwarding
101--------------
102
103ssh's default for ForwardX11 has been changed to ``no'' because it has
104been pointed out that logging into remote systems administered by
105untrusted people is likely to open you up to X11 attacks, so you
106should have to actively decide that you trust the remote machine's
107root, before enabling X11. I strongly recommend that you do this on a
108machine-by-machine basis, rather than just enabling it in the default
109host settings.
110
111In order for X11 forwarding to work, you need to install xauth on the
112server. In Debian this is in the xbase-clients package.
113
114As of OpenSSH 3.1, the remote $DISPLAY uses localhost by default to reduce
115the security risks of X11 forwarding. Look up X11UseLocalhost in
116sshd_config(8) if this is a problem.
117
118OpenSSH 3.8 invented ForwardX11Trusted, which when set to no causes the
119ssh client to create an untrusted X cookie so that attacks on the
120forwarded X11 connection can't become attacks on X clients on the remote
121machine. However, this has some problems in implementation - notably a
122very short timeout of the untrusted cookie - breaks large numbers of
123existing setups, and generally seems immature. The Debian package
124therefore sets the default for this option to "yes" (in ssh itself,
125rather than in ssh_config).
126
127Fallback to RSH
128---------------
129
130The default for this setting has been changed from Yes to No, for
131security reasons, and to stop the delay attempting to rsh to machines
132that don't offer the service. Simply switch it back on in either
133/etc/ssh/ssh_config or ~/.ssh/config for those machines that you need
134it for.
135
136Setgid ssh-agent and environment variables
137------------------------------------------
138
139As of version 1:3.5p1-1, ssh-agent is installed setgid to prevent ptrace()
140attacks retrieving private key material. This has the side-effect of causing
141glibc to remove certain environment variables which might have security
142implications for set-id programs, including LD_PRELOAD, LD_LIBRARY_PATH, and
143TMPDIR.
144
145If you need to set any of these environment variables, you will need to do
146so in the program exec()ed by ssh-agent. This may involve creating a small
147wrapper script.
148
149Symlink Hostname invocation
150---------------------------
151
152This version of ssh no longer includes support for invoking ssh with the
153hostname as the name of the file run. People wanting this support should
154use the ssh-argv0 script.
155
156=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
157
158OTHER ISSUES
159============
160
161/usr/bin/ssh not SUID
162---------------------
163
164Due to Debian bug #164325, RhostsRSAAuthentication can only be used if ssh
165is SUID. Until this is fixed, if that is a problem, use:
166
167 dpkg-statoverride
168
169or if that's also missing, use this:
170
171 chown root.root /usr/bin/ssh
172 chmod 04755 /usr/bin/ssh
173
174Authorization Forwarding
175------------------------
176
177Similarly, root on a remote server could make use of your ssh-agent
178(while you're logged into their machine) to obtain access to machines
179which trust your keys. This feature is therefore disabled by default.
180You should only re-enable it for those hosts (in your ~/.ssh/config or
181/etc/ssh/ssh_config) where you are confident that the remote machine
182is not a threat.
183
184Problems logging in with RSA authentication
185-------------------------------------------
186
187If you have trouble logging in with RSA authentication then the
188problem is probably caused by the fact that you have your home
189directory writable by group, as well as user (this is the default on
190Debian systems).
191
192Depending upon other settings on your system (i.e. other users being
193in your group) this could open a security hole, so you will need to
194make your home directory writable only by yourself. Run this command,
195as yourself:
196
197 chmod g-w ~/
198
199to remove group write permissions. If you use ssh-copy-id to install your
200keys, it does this for you.
201
202-L option of ssh nonfree
203------------------------
204
205non-free ssh supported the usage of the option -L to use a non privileged
206port for scp. This option will not be supported by scp from openssh.
207
208Please use instead scp -o "UsePrivilegedPort=no" as documented in the
209manpage to scp itself.
210
211Problem logging in because of TCP-Wrappers
212------------------------------------------
213
214ssh is compiled with support for tcp-wrappers. So if you can no longer
215log into your system, please check that /etc/hosts.allow and /etc/hosts.deny
216are configured so that ssh is not blocked.
217
218Kerberos Authentication
219-----------------------
220
221ssh is compiled without support for kerberos authentication, and there are
222no current plans to support this. Thus the KerberosAuthentication and
223KerberosTgtPassing options will not be recognised.
224
225Interoperability between scp and the ssh.com SSH server
226-------------------------------------------------------
227
228In version 2 and greater of the commercial SSH server produced by SSH
229Communications Security, scp was changed to use SFTP (SSH2's file transfer
230protocol) instead of the traditional rcp-over-ssh, thereby breaking
231compatibility. The OpenSSH developers regard this as a bug in the ssh.com
232server, and do not currently intend to change OpenSSH's scp to match.
233
234Workarounds for this problem are to install scp1 on the server (scp2 will
235fall back to it), to use sftp, or to use some other transfer mechanism such
236as rsync-over-ssh or tar-over-ssh.
237
238--
239Matthew Vernon
240<matthew@debian.org>
241and
242Colin Watson
243<cjwatson@debian.org>