zoukankan      html  css  js  c++  java
  • ssh、sftp、scp免密码登录

    1.问题出现

      首先,我在linux主机上编译好程序,但是每次都要把可执行文件通过filezilla或者scrt拉倒板子中去,十分的麻烦。所以我想到利用makefile中执行shell命令的方法,来实现直接上传文件。

      我看了一些资料,感觉还是对sftp中“服务器”,“客户端”这两个概念不太理解。但是我现在还是知道了如何简便的操作,并且这里我不说服务器和客户端这个名词,免得理解麻烦。

    2.问题解决

      1.在我的linux主机上生成ssh key。

    ssh-keygen –t rsa

      这里会出现一些问题,一路回车即可,这里我是已经生成过了,所以问我是否覆盖,覆盖即可。

    zqh@linux:~$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/zqh/.ssh/id_rsa):
    /home/zqh/.ssh/id_rsa already exists.
    Overwrite (y/n)? y
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/zqh/.ssh/id_rsa.
    Your public key has been saved in /home/zqh/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:QPS0Nbi2WPOmlHBFJgu2OZSA7Lostg87ptwWnfXGP1g zqh@linux
    The key's randomart image is:
    +---[RSA 2048]----+
    | . ..o*.oo=      |
    |  o  +.*.*..     |
    | .    = +o       |
    |  .   .+*        |
    | .  . o*S=       |
    |.  . o. ++oE     |
    |.o  .  ..o+      |
    |+=+.    .. o     |
    |*+=o        .    |
    +----[SHA256]-----+

      2.将linux主机上的公匙上传到arm开发板

    zqh@linux:~/.ssh$ cat id_rsa.pub >> authorized_keys    #复制key

      复制key之后将key上传,到arm板的.ssh/文件(这个时候还是问我输入密码)

    zqh@linux:~/.ssh$ scp authorized_keys root@172.24.41.12:/root/.ssh
    root@172.24.41.12's password:
    authorized_keys                                         100%  782     0.8KB/s   00:00

      3.完成

      尝试sftp到arm开发板,发现不需要密码了,那么我现在就可以免密码使用scp直接传文件,非常方便

    zqh@linux:~/.ssh$ sftp root@172.24.41.12
    Connected to 172.24.41.12.
    sftp>

    3.Makefile

    #General Purpose Makefile for cross compile Linux Kernel module
    ifneq ($(KERNELRELEASE),)
    
    obj-m := led.o  #+=是连接字符串
    
    else
    
    OBJ := led
    ARCH := arm    
    CROSS_COMPILE := /usr/local/arm/arm-linux-gnueabihf-4.9/bin/arm-linux-gnueabihf-
    KERN_DIR := /home/zqh/lichee/linux-zero-4.14.y  #选择内核路径
    SOURCE := main.c
    TARGET := test_led
    PWD :=$(shell pwd)   #当前路径
    LICHEDIR := /root/led_driver/
    
    all:
            make ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERN_DIR) M=$(PWD) modules
            $(CROSS_COMPILE)gcc $(SOURCE) -o $(TARGET)
    clean:                                   
            rm -f *.ko *.o *.symvers *.mod.c *.mod.o *.order .*.o.ko.cmd .*.ko.cmd .*.mod.o.cmd .*.o.cmd $(TARGET)        
    install:
            scp $(PWD)/$(OBJ).ko root@172.24.41.12:$(LICHEDIR)
            scp $(PWD)/$(TARGET) root@172.24.41.12:$(LICHEDIR)
    endif

    这样,执行make install时就可以自动将我的文件下载到arm开发板中了。

  • 相关阅读:
    Intent
    关注博客
    Bitmap
    图片压缩
    读取相册、拍照
    Godot开发环境与学习资源
    源码开放的引擎研究
    海龟交易法操作商品期货
    重新开始
    使用node_redis进行redis数据库crud操作
  • 原文地址:https://www.cnblogs.com/ZQQH/p/8681783.html
Copyright © 2011-2022 走看看