,TITLE.16235 Page 1 Tuesday, March 13, 2001 3:33 PM SSH, the Secure Shell The Definitive Guide www.it-ebooks.info ,TITLE.16235 Page 2 Tuesday, March 13, 2001 3:33 PM www.it-ebooks.info ,TITLE.16235 Page 3 Tuesday, March 13, 2001 3:33 PM SSH, the Secure Shell The Definitive Guide Daniel J. Barrett and Richard E. Silverman Beijing• Cambridge• Farnham• Köln• Paris• Sebastopol• Taipei• Tokyo www.it-ebooks.info ,COPYRIGHT.25667 Page 1 Thursday, March 15, 2001 11:41 AM SSH, the Secure Shell: The Definitive Guide by Daniel J. Barrett and Richard E. Silverman Copyright © 2001 O’Reilly & Associates, Inc. All rights reserved. Printed in the United States of America. Published by O’Reilly & Associates, Inc., 101 Morris Street, Sebastopol, CA 95472. Editor: Mike Loukides Production Editor: Mary Anne Weeks Mayo Cover Designer: Ellie Volckhausen Printing History: February 2001: First Edition. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly & Associates, Inc. Many of the designations used by manufacturers andsellerstodistinguishtheirproductsareclaimedastrademarks. Wherethosedesignations appear in this book, and O’Reilly & Associates, Inc. was aware of a trademark claim, the designationshavebeenprintedincapsorinitialcaps.Theassociationbetweentheimageof a land snail and the topic of SSH is a trademark of O’Reilly & Associates, Inc. Whileeveryprecautionhasbeentakeninthepreparationofthisbook,thepublisherassumes no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. ISBN: 0-596-00011-1 [3/01] [M] www.it-ebooks.info ,sshTOC.fm.11051 Page v Tuesday, February 20, 2001 2:14 PM Table of Contents Preface ..................................................................................................................... ix 1. Introduction to SSH .................................................................................. 1 1.1. What Is SSH? ............................................................................................. 2 1.2. What SSH Is Not ....................................................................................... 2 1.3. The SSH Protocol ..................................................................................... 4 1.4. Overview of SSH Features ....................................................................... 5 1.5. History of SSH ........................................................................................ 10 1.6. Related Technologies ............................................................................. 12 1.7. Summary ................................................................................................. 18 2. Basic Client Use ....................................................................................... 19 2.1. A Running Example ............................................................................... 19 2.2. Remote Terminal Sessions with ssh ...................................................... 20 2.3. Adding Complexity to the Example ...................................................... 22 2.4. Authentication by Cryptographic Key ................................................... 26 2.5. The SSH Agent ....................................................................................... 32 2.6. Connecting Without a Password or Passphrase ................................... 37 2.7. Miscellaneous Clients ............................................................................. 38 2.8. Summary ................................................................................................. 40 3. Inside SSH .................................................................................................. 41 3.1. Overview of Features ............................................................................. 42 3.2. A Cryptography Primer .......................................................................... 45 3.3. The Architecture of an SSH System ....................................................... 49 3.4. Inside SSH-1 ........................................................................................... 52 v Oracle 8i Internal Services for Waits, Latches, Locks, and Memory, eMatter Edition Copyright © 2001 O’Reilly & Associates, Inc. All rights reserved. www.it-ebooks.info ,sshTOC.fm.11051 Page vi Tuesday, February 20, 2001 2:14 PM vi Table of Contents 3.5. Inside SSH-2 ........................................................................................... 72 3.6. As-User Access (userfile) ....................................................................... 85 3.7. Randomness ............................................................................................ 86 3.8. SSH and File Transfers (scp and sftp) ................................................... 88 3.9. Algorithms Used by SSH ........................................................................ 91 3.10. Threats SSH Can Counter ................................................................... 100 3.11. Threats SSH Doesn’t Prevent ............................................................. 103 3.12. Summary ............................................................................................. 107 4. Installation and Compile-Time Configuration ......................... 108 4.1. SSH1 and SSH2 ..................................................................................... 108 4.2. F-Secure SSH Server ............................................................................. 129 4.3. OpenSSH ............................................................................................... 130 4.4. Software Inventory ............................................................................... 134 4.5. Replacing R-Commands with SSH ....................................................... 135 4.6. Summary ............................................................................................... 138 5. Serverwide Configuration ................................................................. 139 5.1. The Name of the Server ....................................................................... 140 5.2. Running the Server ............................................................................... 141 5.3. Server Configuration: An Overview .................................................... 143 5.4. Getting Ready: Initial Setup ................................................................. 148 5.5. Letting People in: Authentication and Access Control ....................... 166 5.6. User Logins and Accounts ................................................................... 187 5.7. Subsystems ............................................................................................ 190 5.8. History, Logging, and Debugging ....................................................... 192 5.9. Compatibility Between SSH-1 and SSH-2 Servers .............................. 201 5.10. Summary ............................................................................................. 203 6. Key Management and Agents .......................................................... 204 6.1. What Is an Identity? .............................................................................. 205 6.2. Creating an Identity .............................................................................. 209 6.3. SSH Agents ........................................................................................... 216 6.4. Multiple Identities ................................................................................. 235 6.5. Summary ............................................................................................... 238 7. Advanced Client Use ............................................................................ 240 7.1. How to Configure Clients .................................................................... 240 7.2. Precedence ........................................................................................... 250 7.3. Introduction to Verbose Mode ............................................................ 251 Oracle 8i Internal Services for Waits, Latches, Locks, and Memory, eMatter Edition Copyright © 2001 O’Reilly & Associates, Inc. All rights reserved. www.it-ebooks.info ,sshTOC.fm.11051 Page vii Tuesday, February 20, 2001 2:14 PM Table of Contents vii 7.4. Client Configuration in Depth ............................................................. 252 7.5. Secure Copy with scp .......................................................................... 284 7.6. Summary ............................................................................................... 292 8. Per-Account Server Configuration .................................................. 293 8.1. Limits of This Technique ..................................................................... 294 8.2. Public Key-Based Configuration .......................................................... 295 8.3. Trusted-Host Access Control ............................................................... 313 8.4. The User rc File .................................................................................... 315 8.5. Summary ............................................................................................... 315 9. Port Forwarding and X Forwarding ............................................. 316 9.1. What Is Forwarding? ............................................................................ 317 9.2. Port Forwarding .................................................................................... 318 9.3. X Forwarding ........................................................................................ 340 9.4. Forwarding Security: TCP-wrappers and libwrap .............................. 353 9.5. Summary ............................................................................................... 359 10. A Recommended Setup ....................................................................... 360 10.1. The Basics ........................................................................................... 360 10.2. Compile-Time Configuration ............................................................. 361 10.3. Serverwide Configuration .................................................................. 362 10.4. Per-Account Configuration ................................................................. 366 10.5. Key Management ................................................................................ 367 10.6. Client Configuration ........................................................................... 367 10.7. Remote Home Directories (NFS, AFS) ............................................... 368 10.8. Summary ............................................................................................. 371 11. Case Studies ............................................................................................ 372 11.1. Unattended SSH: Batch or cron Jobs ................................................ 372 11.2. FTP Forwarding .................................................................................. 379 11.3. Pine, IMAP, and SSH .......................................................................... 400 11.4. Kerberos and SSH .............................................................................. 408 11.5. Connecting Through a GatewayHost ................................................ 428 12. Troubleshooting and FAQ .................................................................. 437 12.1. Debug Messages: Your First Line of Defense ................................... 437 12.2. Problems and Solutions ..................................................................... 440 12.3. Other SSH Resources ......................................................................... 459 12.4. Reporting Bugs ................................................................................... 460 Oracle 8i Internal Services for Waits, Latches, Locks, and Memory, eMatter Edition Copyright © 2001 O’Reilly & Associates, Inc. All rights reserved. www.it-ebooks.info ,sshTOC.fm.11051 Page viii Tuesday, February 20, 2001 2:14 PM viii Table of Contents 13. Overview of Other Implementations ............................................ 461 13.1. Common Features .............................................................................. 461 13.2. Covered Products ............................................................................... 462 13.3. Table of Products ............................................................................... 462 13.4. Other SSH-Related Products .............................................................. 470 14. SSH1 Port by Sergey Okhapkin (Windows) ................................ 471 14.1. Obtaining and Installing Clients ........................................................ 471 14.2. Client Use ............................................................................................ 475 14.3. Obtaining and Installing the Server ................................................... 476 14.4. Troubleshooting ................................................................................. 478 14.5. Summary ............................................................................................. 479 15. SecureCRT (Windows) ......................................................................... 480 15.1. Obtaining and Installing .................................................................... 480 15.2. Basic Client Use .................................................................................. 481 15.3. Key Management ................................................................................ 482 15.4. Advanced Client Use .......................................................................... 483 15.5. Forwarding .......................................................................................... 484 15.6. Troubleshooting ................................................................................. 486 15.7. Summary ............................................................................................. 487 16. F-Secure SSH Client (Windows, Macintosh) ................................ 488 16.1. Obtaining and Installing .................................................................... 488 16.2. Basic Client Use .................................................................................. 489 16.3. Key Management ................................................................................ 490 16.4. Advanced Client Use .......................................................................... 491 16.5. Forwarding .......................................................................................... 493 16.6. Troubleshooting ................................................................................. 495 16.7. Summary ............................................................................................. 497 17. NiftyTelnet SSH (Macintosh) ............................................................ 498 17.1. Obtaining and Installing .................................................................... 498 17.2. Basic Client Use .................................................................................. 499 17.3. Troubleshooting ................................................................................. 501 17.4. Summary ............................................................................................. 502 A. SSH2 Manpage for sshregex .............................................................. 503 B. SSH Quick Reference ............................................................................ 506 Index .................................................................................................................... 521 Oracle 8i Internal Services for Waits, Latches, Locks, and Memory, eMatter Edition Copyright © 2001 O’Reilly & Associates, Inc. All rights reserved. www.it-ebooks.info ,ch00.5787 Page ix Tuesday, February 20, 2001 2:06 PM Preface Privacy is a basic human right, but on today’s computer networks, privacy isn’t guaranteed. Much of the data that travels on the Internet or local networks is transmitted as plain text, and may be captured and viewed by anybody with a little technical know-how. The email you send, the files you transmit between computers, even the passwords you type may be readable by others. Imagine the damage that can be done if an untrusted third party—a competitor, the CIA, your in-laws— intercepted your most sensitive communications in transit. Network security is big business as companies scramble to protect their informa- tion assets behind firewalls, establish virtual private networks (VPNs), and encrypt files and transmissions. But hidden away from all the bustle, there is a small, unas- suming, yet robust solution many big companies have missed. It’s reliable, reason- ably easy to use, cheap, and available for most of today’s operating systems. It’s SSH, the Secure Shell. Protect Your Network with SSH SSH is a low-cost, software-based solution for keeping prying eyes away from the data on a network. It doesn’t solve every privacy and security problem, but it elim- inates several of them effectively. Its major features are: • A secure, client/server protocol for encrypting and transmitting data over a network • Authentication (recognition) of users by password, host, or public key, plus optional integration with other popular authentication systems, including Ker- beros, SecurID, PGP, TIS Gauntlet, and PAM ix This is the Title of the Book, eMatter Edition Copyright © 2001 O’Reilly & Associates, Inc. All rights reserved. www.it-ebooks.info ,ch00.5787 Page x Tuesday, February 20, 2001 2:06 PM x Preface • The ability to add security to insecure network applications such as Telnet, FTP, and many other TCP/IP-based programs and protocols • Almost complete transparency to the end user • Implementations for most operating systems Intended Audience We’ve written this book for system administrators and technically minded users. Some chapters are suitable for a wide audience, while others are thoroughly tech- nical and intended for computer and networking professionals. End-User Audience Do you have two or more computer accounts on different machines? SSH lets you connect one to another with a high degree of security. You can copy files between accounts, remotely log into one account from the other, or execute remote com- mands, all with the confidence that nobody can intercept your username, pass- word, or data in transit. Do you connect from a personal computer to an Internet service provider (ISP)? In particular, do you connect to a Unix shell account at your ISP? If so, SSH can make this connection significantly more secure. An increasing number of ISPs are run- ning SSH servers for their users. In case your ISP doesn’t, we’ll show you how to run a server yourself. Do you develop software? Are you creating distributed applications that must com- municate over a network securely? Then don’t reinvent the wheel: use SSH to encrypt the connections. It’s a solid technology that may reduce your develop- ment time. Even if you have only a single computer account, as long as it’s connected to a network, SSH can still be useful. For example, if you’ve ever wanted to let other people use your account, such as family members or employees, but didn’t want to give them unlimited use, SSH can provide a carefully controlled, limited access channel into your account. Prerequisites We assume you are familiar with computers and networking as found in any mod- ern business office or home system with an Internet connection. Ideally, you are familiar with the Telnet and FTP applications. If you are a Unix user, you should be familiar with the programs rsh, rlogin, and rcp, and with the basics of writing shell scripts. This is the Title of the Book, eMatter Edition Copyright © 2001 O’Reilly & Associates, Inc. All rights reserved. www.it-ebooks.info