• Home
  • InfoBase
  • Dictionaries
  • Member
  • News
  •     Wiki Advance Search
    中文网站
    Network Dictionary Blog Network Dictionary Wiki Network Dictionary Ask Network Dictionary Groups Tech Shop Network Dictionary

    SSH: Secure Shell or Secure Socket Shell

    From Network Dictionary Wiki

    (Redirected from Secure Shell)
    Jump to: navigation, search

    Secure Shell (SSH), sometimes known as Secure Socket Shell, is a Unix-based command interface and protocol for securely getting access to a remote computer. It is widely used by network administrators to control Web and other kinds of servers remotely. SSH is actually a suite of three utilities - slogin, ssh, and scp - that are secure versions of the earlier UNIX utilities, rlogin, rsh, and rcp.


    SSH architecture

    The SSH-2 protocol has a clean internal architecture (defined in RFC 4251) with well-separated layers. These are:

    The transport layer (RFC 4253). This layer handles initial key exchange and server authentication and sets up encryption, compression and integrity verification. It exposes to the upper layer an interface for sending and receiving plaintext packets of up to 32,768 bytes each (more can be allowed by the implementation). The transport layer also arranges for key re-exchange, usually after 1 GB of data have been transferred or after 1 hour has passed, whichever is sooner.

    The user authentication layer (RFC 4252). This layer handles client authentication and provides a number of authentication methods. Authentication is client-driven, a fact commonly misunderstood by users; when one is prompted for a password, it is the SSH client prompting, not the server. The server merely responds to client's authentication requests. Widely used user authentication methods include the following:

    • "password": a method for straightforward password authentication, including a facility allowing a password to be changed. This method is not implemented by all programs.
    • "publickey": a method for public key-based authentication, usually supporting at least DSA or RSA keypairs, with other implementations also supporting X.509 certificates)
    • "keyboard-interactive" (RFC 4256): a versatile method where the server sends one or more prompts to enter information and the client displays them and sends back responses keyed-in by the user.

    -Used to provide one-time password authentication such as S/Key or SecurID. -Used by some OpenSSH configurations when PAM is the underlying host authentication provider to effectively provide password authentication, sometimes leading to inability to log in with a client that supports just the plain "password" authentication method.

    GSSAPI authentication methods which provide an extensible scheme to perform SSH authentication using external mechanisms such as Kerberos 5 or NTLM, providing single sign on capability to SSH sessions. These methods are usually implemented by commercial SSH implementations for use in organizations.

    The connection layer (RFC 4254). This layer defines the concept of channels, channel requests and global requests using which SSH services are provided. A single SSH connection can host multiple channels simultaneously, each transferring data in both directions. Channel requests are used to relay out-of-band channel specific data, such as the changed size of a terminal window or the exit code of a server-side process. The SSH client requests a server-side port to be forwarded using a global request. Standard channel types include:

    • "shell" for terminal shells, SFTP and exec requests (including SCP transfers)
    • "direct-tcpip" for client-to-server forwarded connections
    • "forwarded-tcpip" for server-to-client forwarded connections

    This open architecture provides considerable flexibility, allowing SSH to be used for a variety of purposes beyond secure shell. The functionality of the transport layer alone is comparable to TLS; the user authentication layer is highly extensible with custom authentication methods; and the connection layer provides the ability to multiplex many secondary sessions into a single SSH connection, a feature comparable to BEEP and not available in TLS.