661 |
access to external commands to perform that task. |
access to external commands to perform that task. |
662 |
|
|
663 |
@cindex uuencode |
@cindex uuencode |
|
@tramp{} supports the use of @command{uuencode} to transfer files. |
|
|
This is @emph{not} recommended. The @command{uuencode} and |
|
|
@command{uudecode} commands are not well standardized and may not |
|
|
function correctly or at all on some machines, notably AIX and IRIX. |
|
|
These systems do not work with @command{uuencode} at all. (But do see |
|
|
the note about AIX in the documentation for @var{tramp-methods}.) |
|
|
|
|
664 |
@cindex mimencode |
@cindex mimencode |
665 |
@cindex base-64 encoding |
@cindex base-64 encoding |
666 |
In summary, if possible use the @command{mimencode} methods to transfer |
@tramp{} checks the availability and usability of commands like |
667 |
the data base64 encoded. This has the advantage of using a built-in |
@command{mimencode} (part of the @command{metamail} package) or |
668 |
command in every modern Emacs, improving performance. |
@command{uuencode} on the remote host. The first reliable command |
669 |
|
will be used. The search path can be customized, see @ref{Remote |
670 |
|
Programs}. |
671 |
|
|
672 |
|
If both commands are'nt available on the remote host, @tramp{} |
673 |
|
transfers a small piece of Perl code to the remote host, and tries to |
674 |
|
apply it for encoding and decoding. |
675 |
|
|
676 |
|
|
677 |
@table @asis |
@table @asis |
678 |
@item @option{rm} --- @command{rsh} with @command{mimencode} |
@item @option{rsh} |
679 |
@cindex method rm |
@cindex method rsh |
680 |
@cindex rm method |
@cindex rsh method |
681 |
@cindex method using rsh (rm) |
|
682 |
|
Connect to the remote host with @command{rsh}. Due to the unsecure |
683 |
Connect to the remote host with @command{rsh} and use base64 encoding to |
connection it is recommended for very local host topology only. |
684 |
transfer files between the machines. |
|
|
|
|
|
This requires the @command{mimencode} command that is part of the |
|
|
@command{metamail} packages. This may not be installed on all remote |
|
|
machines. |
|
|
|
|
|
|
|
|
@item @option{sm} --- @command{ssh} with @command{mimencode} |
|
|
@cindex method sm |
|
|
@cindex sm method |
|
|
@cindex method using ssh (sm) |
|
|
@cindex ssh (with sm method) |
|
|
@cindex mimencode (with sm method) |
|
|
@cindex base-64 encoding (with sm method) |
|
685 |
|
|
686 |
Connect to the remote host with @command{ssh} and use base64 encoding to |
@item @option{ssh} |
687 |
transfer files between the machines. |
@cindex method ssh |
688 |
|
@cindex ssh method |
689 |
|
|
690 |
This is identical to the previous option except that the @command{ssh} |
Connect to the remote host with @command{ssh}. This is identical to |
691 |
package is used, making the connection more secure. |
the previous option except that the @command{ssh} package is used, |
692 |
|
making the connection more secure. |
693 |
|
|
694 |
There are also two variants, @option{sm1} and @option{sm2}, that call |
There are also two variants, @option{ssh1} and @option{ssh2}, that |
695 |
@samp{ssh -1} and @samp{ssh -2}, respectively. This way, you can |
call @samp{ssh -1} and @samp{ssh -2}, respectively. This way, you can |
696 |
explicitly select whether you want to use the SSH protocol version 1 |
explicitly select whether you want to use the SSH protocol version 1 |
697 |
or 2 to connect to the remote host. (You can also specify in |
or 2 to connect to the remote host. (You can also specify in |
698 |
@file{~/.ssh/config}, the SSH configuration file, which protocol |
@file{~/.ssh/config}, the SSH configuration file, which protocol |
699 |
should be used, and use the regular @option{sm} method.) |
should be used, and use the regular @option{ssh} method.) |
700 |
|
|
701 |
There are also two variants, @option{sm-ssh1} and @option{sm-ssh2} |
Two other variants, @option{ssh1_old} and @option{ssh2_old}, use the |
702 |
that use the @command{ssh1} and @command{ssh2} commands explicitly. If |
@command{ssh1} and @command{ssh2} commands explicitly. If you don't |
703 |
you don't know what these are, you do not need these options. |
know what these are, you do not need these options. |
704 |
|
|
705 |
All the methods based on @command{ssh} have an additional kludgy |
All the methods based on @command{ssh} have an additional kludgy |
706 |
feature: you can specify a host name which looks like @file{host#42} |
feature: you can specify a host name which looks like @file{host#42} |
709 |
arguments to the @command{ssh} command. |
arguments to the @command{ssh} command. |
710 |
|
|
711 |
|
|
712 |
@item @option{tm} --- @command{telnet} with @command{mimencode} |
@item @option{telnet} |
713 |
@cindex method tm |
@cindex method telnet |
714 |
@cindex tm method |
@cindex telnet method |
|
@cindex method using telnet (tm) |
|
|
@cindex telnet (with tm method) |
|
|
@cindex mimencode (with tm method) |
|
|
@cindex base-64 encoding (with tm method) |
|
|
|
|
|
Connect to the remote host with @command{telnet} and use base64 encoding |
|
|
to transfer files between the machines. |
|
|
|
|
|
This requires the @command{mimencode} command that is part of the |
|
|
@command{metamail} packages. |
|
|
|
|
|
|
|
|
@item @option{ru} --- @command{rsh} with @command{uuencode} |
|
|
@cindex method ru |
|
|
@cindex ru method |
|
|
@cindex method using rsh |
|
|
@cindex rsh (with ru method) |
|
|
@cindex uuencode (with ru method) |
|
|
|
|
|
Connect to the remote host with @command{rsh} and use the |
|
|
@command{uuencode} and @command{uudecode} commands to transfer files |
|
|
between the machines. |
|
715 |
|
|
716 |
|
Connect to the remote host with @command{telnet}. This is as unsecure |
717 |
|
as the @option{rsh} method. |
718 |
|
|
719 |
@item @option{su} --- @command{ssh} with @command{uuencode} |
|
720 |
|
@item @option{su} |
721 |
@cindex method su |
@cindex method su |
722 |
@cindex su method |
@cindex su method |
|
@cindex method using ssh (su) |
|
|
@cindex ssh (with su method) |
|
|
@cindex uuencode (with su method) |
|
|
|
|
|
Connect to the remote host with @command{ssh} and use the |
|
|
@command{uuencode} and @command{uudecode} commands to transfer files |
|
|
between the machines. |
|
|
|
|
|
As with the @command{ssh} and base64 option (@option{sm}) above, this |
|
|
provides the @option{su1} and @option{su2} methods to explicitly |
|
|
select an SSH protocol version, and the @option{su-ssh1} and |
|
|
@option{su-ssh2} variants to call specific SSH binaries. |
|
|
|
|
|
Note that this method does not invoke the @command{su} program, see |
|
|
below for methods which use that. |
|
723 |
|
|
724 |
This supports the @samp{-p} kludge. |
This method does not connect to a remote host at all, rather it uses |
725 |
|
the @command{su} program to allow you to edit files as another user. |
726 |
|
|
727 |
|
|
728 |
@item @option{tu} --- @command{telnet} with @command{uuencode} |
@item @option{sudo} |
729 |
@cindex tu method |
@cindex method sudo |
730 |
@cindex method tu |
@cindex sudo method |
|
@cindex method using telnet (tu) |
|
|
@cindex telnet (with tu method) |
|
|
@cindex uuencode (with tu method) |
|
|
|
|
|
Connect to the remote host with @command{telnet} and use the |
|
|
@command{uuencode} and @command{uudecode} commands to transfer files |
|
|
between the machines. |
|
|
|
|
|
|
|
|
@item @option{sum} --- @command{su} with @command{mimencode} |
|
|
@cindex method sum |
|
|
@cindex sum method |
|
|
@cindex method using su (sum) |
|
|
@cindex su (with sum method) |
|
|
@cindex mimencode (with sum method) |
|
|
@cindex base-64 encoding (with sum method) |
|
|
|
|
|
This method does not connect to a remote host at all, rather it uses the |
|
|
@command{su} program to allow you to edit files as another user. Uses |
|
|
base64 encoding to transfer the file contents. |
|
|
|
|
|
|
|
|
@item @option{suu} --- @command{su} with @command{uuencode} |
|
|
@cindex method suu |
|
|
@cindex suu method |
|
|
@cindex method using su (suu) |
|
|
@cindex su (with suu method) |
|
|
@cindex uuencode (with suu method) |
|
|
|
|
|
Like @option{sum}, this uses the @command{su} program to allow you to |
|
|
edit files on the local host as another user. Uses @command{uuencode} |
|
|
and @command{uudecode} to transfer the file contents. |
|
|
|
|
|
|
|
|
@item @option{sudm} --- @command{sudo} with @command{mimencode} |
|
|
@cindex method sudm |
|
|
@cindex sudm method |
|
|
@cindex method using sudo (sudm) |
|
|
@cindex sudo (with sudm method) |
|
|
@cindex mimencode (with sudm method) |
|
|
@cindex base-64 encoding (with sudm method) |
|
731 |
|
|
732 |
This is similar to the @option{sum} method, but it uses @command{sudo} |
This is similar to the @option{su} method, but it uses @command{sudo} |
733 |
rather than @command{su} to become a different user. |
rather than @command{su} to become a different user. |
734 |
|
|
735 |
Note that @command{sudo} must be configured to allow you to start a |
Note that @command{sudo} must be configured to allow you to start a |
736 |
shell as the user. It would be nice if it was sufficient if |
shell as the user. It would be nice if it was sufficient if |
737 |
@command{ls} and @command{mimencode} were allowed, but that is not easy |
@command{ls} and @command{mimencode} were allowed, but that is not |
738 |
to implement, so I haven't got around to it, yet. |
easy to implement, so I haven't got around to it, yet. |
739 |
|
|
740 |
|
|
741 |
@item @option{sudu} --- @command{sudo} with @command{uuencode} |
@item @option{sshx} |
742 |
@cindex method sudu |
@cindex method sshx |
743 |
@cindex sudu method |
@cindex sshx method |
744 |
@cindex method using sudo (sudu) |
@cindex Cygwin (with sshx method) |
|
@cindex sudo (with sudu method) |
|
|
@cindex uuencode (with sudu method) |
|
745 |
|
|
746 |
This is similar to the @option{suu} method, but it uses @command{sudo} |
As you expect, this is similar to @option{ssh}, only a little |
747 |
rather than @command{su} to become a different user. |
different. Whereas @option{ssh} opens a normal interactive shell on |
|
|
|
|
|
|
|
@item @option{smx} --- @command{ssh} with @command{mimencode} |
|
|
@cindex method smx |
|
|
@cindex smx method |
|
|
@cindex method using ssh (smx) |
|
|
@cindex ssh (with smx method) |
|
|
@cindex mimencode (with smx method) |
|
|
@cindex base-64 encoding (with smx method) |
|
|
@cindex Cygwin (with smx method) |
|
|
|
|
|
As you expect, this is similar to @option{sm}, only a little |
|
|
different. Whereas @option{sm} opens a normal interactive shell on |
|
748 |
the remote host, this option uses @samp{ssh -t -t @var{host} -l |
the remote host, this option uses @samp{ssh -t -t @var{host} -l |
749 |
@var{user} /bin/sh} to open a connection. This is useful for users |
@var{user} /bin/sh} to open a connection. This is useful for users |
750 |
where the normal login shell is set up to ask them a number of |
where the normal login shell is set up to ask them a number of |
769 |
This supports the @samp{-p} kludge. |
This supports the @samp{-p} kludge. |
770 |
|
|
771 |
|
|
772 |
@item @option{km} --- @command{krlogin} with @command{mimencode} |
@item @option{krlogin} |
773 |
@cindex method km |
@cindex method krlogin |
774 |
@cindex km method |
@cindex km krlogin |
775 |
@cindex krlogin (with km method) |
@cindex Kerberos (with krlogin method) |
|
@cindex Kerberos (with km method) |
|
|
@cindex mimencode (with km method) |
|
|
@cindex base-64 encoding (with km method) |
|
776 |
|
|
777 |
This method is also similar to @option{sm}. It only uses the |
This method is also similar to @option{ssh}. It only uses the |
778 |
@command{krlogin -x} command to log in to the remote host. |
@command{krlogin -x} command to log in to the remote host. |
779 |
|
|
780 |
|
|
781 |
@item @option{plinku} --- @command{plink} with @command{uuencode} |
@item @option{plink} |
782 |
@cindex method plinku |
@cindex method plink |
783 |
@cindex plinku method |
@cindex plink method |
|
@cindex method using plink (plinku) |
|
|
@cindex plink (with plinku method) |
|
|
@cindex uuencode (with plinku method) |
|
784 |
|
|
785 |
This method is mostly interesting for Windows users using the PuTTY |
This method is mostly interesting for Windows users using the PuTTY |
786 |
implementation of SSH. It uses @samp{plink -ssh} to log in to the |
implementation of SSH. It uses @samp{plink -ssh} to log in to the |
792 |
CCC: Does @command{plink} support the @samp{-p} option? Tramp |
CCC: Does @command{plink} support the @samp{-p} option? Tramp |
793 |
will support that, anyway. |
will support that, anyway. |
794 |
|
|
|
@item @option{plinkm} --- @command{plink} with @command{mimencode} |
|
|
@cindex method plinkm |
|
|
@cindex plinkm method |
|
|
@cindex method using plink (plinkm) |
|
|
@cindex plink (with plinkm method) |
|
|
@cindex mimencode (with plinkm method) |
|
|
@cindex base-64 encoding (with plinkm method) |
|
|
|
|
|
Like @option{plinku}, but uses base64 encoding instead of uu encoding. |
|
|
|
|
795 |
@end table |
@end table |
796 |
|
|
797 |
|
|
855 |
session can begin to absorb the advantage that the lack of encoding and |
session can begin to absorb the advantage that the lack of encoding and |
856 |
decoding presents. |
decoding presents. |
857 |
|
|
858 |
|
There are also two variants, @option{scp1} and @option{scp2}, that |
859 |
|
call @samp{ssh -1} and @samp{ssh -2}, respectively. This way, you can |
860 |
|
explicitly select whether you want to use the SSH protocol version 1 |
861 |
|
or 2 to connect to the remote host. (You can also specify in |
862 |
|
@file{~/.ssh/config}, the SSH configuration file, which protocol |
863 |
|
should be used, and use the regular @option{ssh} method.) |
864 |
|
|
865 |
|
Two other variants, @option{scp1_old} and @option{scp2_old}, use the |
866 |
|
@command{ssh1} and @command{ssh2} commands explicitly. If you don't |
867 |
|
know what these are, you do not need these options. |
868 |
|
|
869 |
All the @command{ssh} based methods support the kludgy @samp{-p} |
All the @command{ssh} based methods support the kludgy @samp{-p} |
870 |
feature where you can specify a port number to connect to in the host |
feature where you can specify a port number to connect to in the host |
871 |
name. For example, the host name @file{host#42} tells Tramp to |
name. For example, the host name @file{host#42} tells Tramp to |
959 |
opens just one connection to the remote host and then keeps it open, |
opens just one connection to the remote host and then keeps it open, |
960 |
anyway. |
anyway. |
961 |
|
|
962 |
|
|
963 |
|
@ifset emacs |
964 |
|
@item @option{ftp} |
965 |
|
@cindex method ftp |
966 |
|
@cindex ftp method |
967 |
|
|
968 |
|
This is not a natural @tramp{} method. Instead of, it forwards all |
969 |
|
requests to @value{ftp-package-name}. |
970 |
|
@end ifset |
971 |
|
|
972 |
@end table |
@end table |
973 |
|
|
974 |
@node Multi-hop Methods |
@node Multi-hop Methods |
984 |
of multi-hop filenames is slightly different than the format of normal |
of multi-hop filenames is slightly different than the format of normal |
985 |
@tramp{} methods. |
@tramp{} methods. |
986 |
|
|
|
A multi-hop file name specifies a method, a number of hops, and a path |
|
|
name on the remote system. The method specifies how the file is |
|
|
transferred through the inline connection. The following two multi-hop |
|
|
methods are available: |
|
|
|
|
|
@table @asis |
|
|
@item @option{multi} --- base64 encoding with @command{mimencode} |
|
987 |
@cindex method multi |
@cindex method multi |
988 |
@cindex multi method |
@cindex multi method |
989 |
@cindex mimencode (with multi method) |
A multi-hop file name specifies a method, a number of hops, and a path |
990 |
@cindex base-64 encoding (with multi method) |
name on the remote system. The method name is always |
991 |
|
@option{multi}. |
|
The file is transferred through the connection in base64 encoding. Uses |
|
|
the @command{mimencode} program for doing encoding and decoding, but |
|
|
uses an Emacs internal implementation on the local host if available. |
|
|
|
|
|
@item @option{multiu} --- use commands @command{uuencode} and @command{uudecode} |
|
|
@cindex method multiu |
|
|
@cindex multiu method |
|
|
@cindex uuencode (with multiu method) |
|
|
|
|
|
The file is transferred through the connection in `uu' encoding. Uses |
|
|
the @command{uuencode} and @command{uudecode} programs for encoding and |
|
|
decoding, but uses a Lisp implementation for decoding on the local host |
|
|
if available. |
|
|
|
|
|
@end table |
|
992 |
|
|
993 |
Each hop consists of a @dfn{hop method} specification, a user name and a |
Each hop consists of a @dfn{hop method} specification, a user name and |
994 |
host name. The following hop methods are (currently) available: |
a host name. The hop method can be an inline method only. The |
995 |
|
following hop methods are (currently) available: |
996 |
|
|
997 |
@table @option |
@table @option |
998 |
@item telnet |
@item telnet |
1030 |
root. But @option{su} need not be the last hop in a sequence, you could |
root. But @option{su} need not be the last hop in a sequence, you could |
1031 |
also use it somewhere in the middle, if the need arises. |
also use it somewhere in the middle, if the need arises. |
1032 |
|
|
1033 |
Even though you @emph{must} specify both user and host with a |
Even though you @emph{must} specify both user and host with an |
1034 |
@option{su} hop, the host name is ignored and only the user name is |
@option{su} hop, the host name is ignored and only the user name is |
1035 |
used. |
used. |
1036 |
|
|
1047 |
maybe they have to use a nonstandard port. This can be accomplished |
maybe they have to use a nonstandard port. This can be accomplished |
1048 |
by putting a stanza in @file{~/.ssh/config} for the account which |
by putting a stanza in @file{~/.ssh/config} for the account which |
1049 |
specifies a different port number for a certain host name. But it can |
specifies a different port number for a certain host name. But it can |
1050 |
also be accomplished within Tramp, by adding a multi-hop method. For |
also be accomplished within @tramp{}, by adding a multi-hop method. |
1051 |
example: |
For example: |
1052 |
|
|
1053 |
@lisp |
@lisp |
1054 |
(add-to-list |
(add-to-list |