■ Contents
xiv
Searching ���������������������������������������������������������������������������������������������������������������������������������������������������������� 284
Manipulating Folders and Messages ����������������������������������������������������������������������������������������������������������������� 285
Asynchrony �������������������������������������������������������������������������������������������������������������������������������������������������������� 286
Summary ����������������������������������������������������������������������������������������������������������������������������������� 287
■ Chapter 16: Telnet and SSH �������������������������������������������������������������������������������������������289
Command-Line Automation �������������������������������������������������������������������������������������������������������289
Command-Line Expansion and Quoting������������������������������������������������������������������������������������������������������������� 290
Unix Command Arguments Can Include (Almost) Any Character ����������������������������������������������������������������������� 291
Quoting Characters for Protection ��������������������������������������������������������������������������������������������������������������������� 294
The Terrible Windows Command Line ���������������������������������������������������������������������������������������������������������������� 295
Things Are Different in a Terminal ��������������������������������������������������������������������������������������������������������������������� 295
Terminals Do Buffering �������������������������������������������������������������������������������������������������������������������������������������� 298
Telnet ����������������������������������������������������������������������������������������������������������������������������������������� 299
SSH: The Secure Shell ���������������������������������������������������������������������������������������������������������������303
An Overview of SSH ������������������������������������������������������������������������������������������������������������������������������������������� 304
SSH Host Keys ��������������������������������������������������������������������������������������������������������������������������������������������������� 304
SSH Authentication �������������������������������������������������������������������������������������������������������������������������������������������� 306
Shell Sessions and Individual Commands ��������������������������������������������������������������������������������������������������������� 307
SFTP: File Transfer Over SSH ����������������������������������������������������������������������������������������������������������������������������� 312
Other Features ��������������������������������������������������������������������������������������������������������������������������������������������������� 314
Summary ����������������������������������������������������������������������������������������������������������������������������������� 315
■ Chapter 17: FTP �������������������������������������������������������������������������������������������������������������317
What to Use Instead of FTP �������������������������������������������������������������������������������������������������������317
Communication Channels ���������������������������������������������������������������������������������������������������������������������������������� 318
Using FTP in Python ������������������������������������������������������������������������������������������������������������������������������������������� 319
ASCII and Binary Files���������������������������������������������������������������������������������������������������������������������������������������� 320
Advanced Binary Downloading �������������������������������������������������������������������������������������������������������������������������� 321
Uploading Data �������������������������������������������������������������������������������������������������������������������������������������������������� 323
Advanced Binary Uploading ������������������������������������������������������������������������������������������������������������������������������� 324
Handling Errors �������������������������������������������������������������������������������������������������������������������������������������������������� 325